Error: In an assignment A(I) = B, the number of elements in B and I must be the same

조회 수: 4 (최근 30일)
Not sure if anyone will beable to help me but thought I might as well ask.
This is my code I'm currently using:
%%Define Variables
g=9.81 %define gravity as 9.81
Numbertrials=90 %number of trials
FrameR = 0.001 %Frame rate was 1000
%Data in
for i=[1:Numbertrials]
if i<10
filein='Trial0';
else filein='Trial';
end
datain = csvread([filein num2str(i) '.CSV'],5,2); %read data in from the csv files
%%Find peak jump height
Num0(i)=find(datain(2790:6000,1)==0);%How many 0 readings = time in air
FT(i)=length(Num0)*FrameR; %Time of flight
PeakDisp(i)=(0*(FT/2))-(0.5*g*(FT/2)^2); %Peak Jump Height using vt-0.5*a*t^2
end
I am getting an error on the Num0(i)=...line. I know this is because find returns all row numbers where the condition is met, so I get a lot of row numbers to come out of this function. And I am trying to fit them all into a single element (Num0(i)) which it can’t do, hence the error.
So I was wodnering if anyone knew how I could fix this easily?
If any extra information is needed let me know
Thanks

채택된 답변

Sara
Sara 2014년 5월 20일
If you do not need to store Num0 and have it after the for loop ends, you could just do
Num0 = find....
especially because at the next line you do:
FT(i)=length(Num0)*FrameR;
which suggest you just want to know how many 0 readings you have but not where they are in datain.
  댓글 수: 2
BOB
BOB 2014년 5월 21일
편집: BOB 2014년 5월 21일
I now get the same error on the line
PeakDisp(i)=(0*(FT/2))-(0.5*g*(FT/2).^2);
Any ideas? Do I need to change the FT in that line to FT(i)?
Sara
Sara 2014년 5월 21일
If you don't need to know the evolution of FT with i, then yes, just replace FT(i) with FT. Or, do:
PeakDisp(i)=(0*(FT(i)/2))-(0.5*g*(FT(i)/2).^2);
Also, preallocate PeakDisp before the for loop:
PeakDisp = zeros(Numbertrials,1);
for speed.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by