Creating a submatrix from a matrix

I have a matrix for example; A = {1 3 7; 10 1 2; 11 5 9; 12 2 5] (however, mine is much bigger) And I would like to keep the rows where all the elements in the row are less than or equal to 7 to put into a new submatrix called B. How would I go about this?
Many thanks for any help you can give :)

 採用された回答

José-Luis
José-Luis 2013 年 1 月 8 日
編集済み: José-Luis 2013 年 1 月 8 日

1 投票

A = [1 3 7; 10 1 2; 11 5 9; 12 2 5]
your_mat = A(all(A<=7,2),:);
I looked at your question history. Please accept an answer if it helped you. It is the only "payment" contributors in this forum receive.

5 件のコメント

Bran
Bran 2013 年 1 月 8 日
Hi there,
I'm so sorry Jose... I didn't realise that that is what I should do! Please accept my sincerest apologies! Many thanks for flagging this up to me! Serves my right for not reading the rules!
Happy New year! :) Bran
José-Luis
José-Luis 2013 年 1 月 8 日
No worries, and no apologies needed. It's not really a rule, but something nice to do for the contributors. Anyway...
Cheers!
Bran
Bran 2013 年 1 月 10 日
Hi there,
Just a quick question. I have applied this code to another matrix modifying it slightly to read;
your_mat = B2(all((-8/3)<=B2<=(8/3),2),:)because I want to keep all rows where the all the column numbers are greater than -8/3 or less than 8/3 however, the matrix I get is the exact same size as the original B2 and I know that this is not the case. Any ideas what could be going wrong??
Many thanks in advance :) Bran
José-Luis
José-Luis 2013 年 1 月 10 日
編集済み: José-Luis 2013 年 1 月 10 日
(-8/3)<=B2<=(8/3)
is not valid Matlab syntax. You could try instead:
abs(B2) <= 8/3
Bran
Bran 2013 年 1 月 14 日
Many thanks, that worked for me :)

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

その他の回答 (3 件)

Thomas
Thomas 2013 年 1 月 8 日
編集済み: Thomas 2013 年 1 月 8 日

0 投票

A = [1 3 7; 10 1 2; 11 5 9; 12 2 5]
out=A(find(sum(A<=7,2)==size(A,2)),:) % rows with elements <=7

1 件のコメント

Bran
Bran 2013 年 1 月 8 日
Thanks Guys for all the help!

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

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 1 月 8 日
編集済み: Azzi Abdelmalek 2013 年 1 月 8 日

0 投票

A = {1 3 7; 10 1 2; 11 5 9; 12 2 5};
B=cell2mat(A);
out1=B(B<7);
n=numel(out1);
n1=floor(sqrt(n));
m1=ceil(n/n1);
out=cell(1,n1*m1);
out(1:n)=num2cell(out1)';
B=reshape(out,n1,m1)

1 件のコメント

Bran
Bran 2013 年 1 月 8 日
Many thanks for the help!

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

nabin
nabin 2014 年 5 月 8 日

0 投票

I have a matrix A=[1 2 3; 1 2 9; 2 3 4]. I want a matrix B whose column 1 is equal to 1. How can I do this? B=[1 2 3; 1 2 9]

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2013 年 1 月 8 日

回答済み:

2014 年 5 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by