Attempt to reference field of non-structure array.
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm trying to read and load the .mat data (originally from .csv files) as following code;
input_data=xlsread('input_data_test.xlsx',1,'(B14:E18)');
[nofinput]=length(input_data(:,1));
start=input('press enter to start');
for ww=1:nofinput;
ii=input_data(ww,:);
if ii(isfinite(ii(:, 1)), :);
run_1=ii;
CA=run_1(1,1)
CA_CA=CA;
x_first=run_1(1,2)
y_first=run_1(1,3)
z_first=run_1(1,4)
step_number=5
[uu]=step_number;
[cc]=26;
AAA=zeros(uu,cc);
clear uu cc
Speed=1600;
Delta_CA=0.25
Time_CA=(60/Speed)/360
Delta_t=Delta_CA*Time_CA;
load CA0000.mat
load CA0025.mat
load CA0050.mat
for tt=1:step_number
if CA==0 matrice_cartesian=CA0000.mat;
elseif CA==0.25 matrice_cartesian=CA0025.mat;
elseif CA==0.5 matrice_cartesian=CA0050.mat;
end
but there's an error message; "Attempt to reference field of non-structure array" at line "elseif CA==0.25 matrice_cartesian=CA0025.mat;" So what is the possible cause for this problem? Please help, I'm really newbie in MATLAB code. Thanks
댓글 수: 1
Walter Roberson
2016년 11월 24일
Is
matrice_cartesian=CA0000.mat
intended to indicate that matrice_cartesian should be assigned the string 'CA0000.mat' or that it should be assigned what is stored in the file CA0000.mat ?
채택된 답변
Walter Roberson
2016년 11월 24일
My guess:
if CA==0 matrice_cartesian=CA0000;
elseif CA==0.25 matrice_cartesian=CA0025;
elseif CA==0.5 matrice_cartesian=CA0050;
end
However, you should be avoiding exact comparison of floating point values. The values 0.25 and 0.5 are exactly representable in floating point but the value that is in CA might have been calculated by a process that did not result in exactly 0.25 or exactly 0.5
댓글 수: 0
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Title에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!