how to read the data from vector

13 ビュー (過去 30 日間)
Chaoyang Jiang
Chaoyang Jiang 2018 年 3 月 27 日
コメント済み: Chaoyang Jiang 2018 年 3 月 28 日
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?

採用された回答

Walter Roberson
Walter Roberson 2018 年 3 月 27 日
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 件のコメント
Walter Roberson
Walter Roberson 2018 年 3 月 28 日

You changed your question.

index1 = find( c(sub2ind(size(c), a, b)) == 5);
Chaoyang Jiang
Chaoyang Jiang 2018 年 3 月 28 日
Thank you very much for your answer!!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeEEG/MEG/ECoG についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by