how to read the data from vector
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Chaoyang Jiang
am 27 Mär. 2018
Kommentiert: Chaoyang Jiang
am 28 Mär. 2018
a=randi(10000,[10000,1]);
b=randi(10000,[10000,1]);
c=randi(100,[10000,10000]);
My question is how to find the row index of c where the c equals 5 (a is the x coordinate and b is the y coordinate).
I can do it using loop:
index=zeros(length(a),1);
for i=1:length(a)
index(i)=(c(a(i),b(i))==5);
end
index1=find(index);
May I know how to do it more efficiently whithout the use of for loop?
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 27 Mär. 2018
You cannot. Your a values are up to 10000 but your c array is only 1000 on a side.
If you were to fix the ranges of a and b then
d = c(sub2ind(size(c), a, b));
2 Kommentare
Walter Roberson
am 28 Mär. 2018
You changed your question.
index1 = find( c(sub2ind(size(c), a, b)) == 5);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!