Dot indexing is not supported for variables of this type.
조회 수: 450 (최근 30일)
이전 댓글 표시
Dear all,
I am very new to Matlab. How can I fix the error of "Dot indexing is not supported for variables of this type" in the following code? Thank you.
global M_
% read out parameters to access them with their name
NumberOfParameters = M_.param_nbr;
for ii = 1:NumberOfParameters
paramname = deblank(M_.param_names(ii,:));
eval([ paramname ' = M_.params(' int2str(ii) ');']);
end
% initialize indicator
check = 0;
The error:
Dot indexing is not supported for variables of this type.
Error in DT_steadystate (line 7)
NumberOfParameters = M_.param_nbr;
Best,
Pras
댓글 수: 3
Marwan Soliman
2022년 5월 4일
filename='pulse.txt';
delimiterIn='';
headerlinesIN= 1;
A=importdata(filename,delimiterIn,headerlinesIN);
Led_R = A.data(:,1); % RED (R)
Led_IR = A.data(:,2); % INFRARED (IR)
Dot indexing is not supported for variables of this type.
anyone can help plz line 5
Walter Roberson
2022년 5월 4일
I recommend against using importdata(), as the fundamental datatype that is output is too unpredicatable.
When you use importdata() with a file that is pure numeric after the given header lines, then the output is a pure numeric array.
But if you use importdata() with a file that has additional headers after the given header lines, then the output is a struct.
And if you use importdata() with a file that has a mix of text and numbers, then the output is a struct and the struct has additonal fields compared to the case of a header followed by pure numberic.
I recommand that you use readmatrix() instead for your situation.
채택된 답변
추가 답변 (2개)
Allen
2021년 5월 26일
It appears that you are initializing a new variable M_ at the start of your code and by default it is just an empty double-class array. Doubles do not use or allow dot notation. Also, is there a reason why you are trying to initialize your variable as a global variable? If not, then I would recommend steering away from a global as this can create problems in subsquently run scripts if you are not careful.
clear
global M_
whos('M_')
If you are intending for M_ to utilize the dot notation in MATLAB, then you will need to generate a table or structure class. See help documents for struct and table classes.
help struct
help table
댓글 수: 2
Allen
2021년 5월 26일
Pras,
You should what you found as a solution to you question and accept your own response as the correct solution. This will help other people that are looking for a similar answer know what works.
Thanks,
Allen
Tapamay
2024년 4월 6일
Hello Everyone,
I am new to Matlab. How can I fix the error of "Dot indexing is not supported for variables of this type" in the following code? Thank you.
The error shows this:
Dot indexing is not supported for variables of this type.
Error in RawData_To_CpVsAoA (line 13)
rawdata=rawdata.data(1:10,1:24);
clc; clear all; close all;
aoa=[-10 -8 -6 -4 -2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30];
Cp_aoa_data=[];
for i=1:length(aoa)
filename = ['Raw Data\',num2str(aoa(i)),'.txt'];
rawdata=importdata(filename);
rawdata=rawdata.data(1:10,1:24);
rawdata=mean(rawdata,1);
airfoilpressure=rawdata(1:22)*792*9.81/1000;
p_inf=rawdata(24)*792*9.81/1000;
p_0=-2.338*792*9.81/1000;
Cp = (airfoilpressure - p_inf)/(p_0-p_inf);
Cp_aoa_data=[Cp_aoa_data Cp'];
end
댓글 수: 1
Walter Roberson
2024년 4월 7일
The data type returned by importdata() depends on the format of the file. If it happened to be something that looked like a numeric block, then importdata() would return a numeric array, and numeric arrays do not allow dot indexing.
We recommend that you use readtable() or readmatrix() or readcell() instead of importdata()
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Import and Analysis에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!