簡體   English   中英

Matlab:在期望的邊界之間找到矩陣的值

[英]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<500T<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM