Removing a Range of Elements from an array

Hi,
I have a matrix M and I am interested in the 12th column which has elements [1 2 3 4..... 540 589 760 761 770 47 46 47 48]
My goal is to get rid of all the elements after 750, including the values less than it.
My first code was
M(M(:,12)>750,:) =[];
but this didn't get rid of 47 46 48..
Mx= find(M(:,12)>750);
Mxmin=min(Mx); %to find the smallest value above 750 (in this case 760)
M(Mxmin:end,12)= [];
currently I am using this code, which gives me an error that says A null assignment can have only one non-colon index.
What am I doing wrong?

1 件のコメント

Hans123
Hans123 2019 年 3 月 28 日
I want to eliminate the whole row of that matrix, if the column 12 contains a 760 - I want that row removed. That's why I used [ ]

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

 採用された回答

Walter Roberson
Walter Roberson 2019 年 3 月 28 日

0 投票

M(find(M:,12)>750,1):end, :) = [];

1 件のコメント

Hans123
Hans123 2019 年 3 月 28 日
wow!
Thank you, really appreciate it

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

その他の回答 (1 件)

Jos (10584)
Jos (10584) 2019 年 3 月 28 日

0 投票

ix = find(M(:,12) > 750, 1, 'first') % find the row index of the first element in the 12th column of A being larger than 750
M(ix:end,:) = [] % remove all the rows of M starting with this row

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

製品

質問済み:

2019 年 3 月 28 日

コメント済み:

2019 年 3 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by