[英]Matlab: Find values of a matrix between desired bounds
我有一個按升序排序的矩陣。
S = 25;
RT = zeros(S,2);
for i = 1:S;
for j = 1:i;
R = i *j;
T = R + j;
RT(j,:) = [R T];
end
end
sortRT = sortrows(RT, [1 2]);
disp(sortRT);
我想找到sortRT元素,每列的值低於500(對於R)和490(對於T),並將這些值放在矩陣中。 可能嗎?
只需使用find :
idx = find(sortRT(:,1)<500 & sortRT(:,2)<490)
idx' =
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
這些是R<500
和T<490
。 你當然可以分開這兩個:
idxR500 = find(sortRT(:,1)<500);
idxT490 = find(sortRT(:,2)<490);
如果您只是要復制元素或行,那么甚至不需要查找,您可以使用邏輯索引 :
R500 = sortRT(find(sortRT(:,1)<500) , 1);
是相同的
R500 = sortRT(sortRT(:,1)<500 , 1);
這會復制第一列的元素,如果要復制整行,請使用冒號運算符 :
R500 = sortRT(sortRT(:,1)<500 , :);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.