簡體   English   中英

如何從矩陣中獲取選擇性行並以八度為單位形成新矩陣?

[英]How to get selective rows from a matrix and form a new matrix in octave?

假設我有一個八度的矩陣

A = [2 3 5;
     5 6 7; 
     8 9 10;
     1 2 5]

現在,我只想獲取最后一列等於5的那些行。我想知道是否有內置函數可以這樣做,因為現在正在這樣做。

collection = [];
for i = 1 : size(matrix,1),
    if(matrix(i,3) == 5),
        collection = [collection; matrix(i,:)];
    end
end

如果有用於單列矩陣的方法,我會很好。

您可以使用最后一列上的邏輯索引進行操作,例如

A(:,end) == 5

返回一個邏輯矩陣,該邏輯矩陣對所需的行為true,否則為false。 我們可以像這樣選擇行

ind = A(:,end) == 5;
A(ind,:); 

您甚至可以內聯:

A(A(:,end)==5,:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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