Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
I have a matrix with values from -180 to 180 and i want to find all the places where each value is and then save them in a new matrix, how can i do it?
조회 수: 1 (최근 30일)
이전 댓글 표시
I want to create a for loop that goes for values -180:1:180 and finds all the locations(i,j) for each value. e.g i want to find all the locations for value -180 and then save them in a new matrix. is it possible to be done? i wrote here the code for the loop function and it works but i dont know how to save the values so as to know which location is for each value.
for a= 180:-1:-180
[i,j]=find(ORIENT==a)
end
댓글 수: 0
답변 (2개)
mbonus
2016년 9월 12일
Is this what you're looking for?
Result = [];
for a = -180:180
[ind1,ind2] = find(ORIENT == a);
Result(a,1) = ind1;%save the row number to row a
Result(a,2) = ind2;%save the column number to row a
try
Result(a,3) = ORIENT(ind1,ind2);%save the value for the indices ind1&ind2
catch
Result(a,3) = NaN;%save NaN if there is no corresponding value for the indices
end
end
댓글 수: 2
mbonus
2016년 9월 13일
Are you getting multiple values returned for each index in the find? I assumed that there was only one of each value in the matrix ORIENT. Do you want every i in a single matrix and every j in a single matrix? if so I would suggest a cell array because that allows you to have different column or row lengths if there is an unknown number of each value of a in the matrix ORIENT
Star Strider
2016년 9월 12일
Since ‘a’ is a vector, ‘j’ will always be 1. So forget about the loop and just calculate them directly:
i = 1:361;
a = 181 - i;
댓글 수: 0
이 질문은 마감되었습니다.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!