Can't get simple for loop to run

조회 수: 1 (최근 30일)
Alex Hughes
Alex Hughes 2020년 9월 22일
답변: Deepak Meena 2020년 9월 25일
I've still not got the hang of loops! I have a 3667 x 1 double matrix (d1) and I have a 33 x 1 matrix (d2). All the values in the 33 x 1 matrix (d2) should correpsond to values in the 3667 x 1 matrix (d1). I want to loop throught each row of the the 33 x 1 matrix and get the index of the equivelant value in the 3667 x 1 matrix. I can do this without a loop using the following code using just one value from d2:
index_1=find(d1(:,1)==R1);
where R1 correpsonds to the integer value in the matrix d2 (e.g. d2(1,1))
However, when I try and put this in a loop the result ij is empty. The code seemd to run but I'm not getting the result that I get outside the loop.
size_d2=size(d2);
results=zeros(size(1,1),1);
for ii=d2(1):d2(end)
ij=find((d1(:,1))==ii);
results(ii)=ij;
end
Any advice on where I'm going wrong would be appreciated!
Thanks

답변 (1개)

Deepak Meena
Deepak Meena 2020년 9월 25일
Hi Alex ,
I think you are defining "results " variable wrong. From my understanding you want to results variable to be similar size of as d2. so you should be doing this :
results=zeros(size_d2(1,1),1);
Rest of the code seems fine to me.

카테고리

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