MATLAB Answers

How can i get sub matrices with using for loop

11 ビュー (過去 30 日間)
Mooner Land
Mooner Land 2019 年 9 月 16 日
コメント済み: Mooner Land 2019 年 9 月 18 日
Hello everyone
I have a matrix A as:
A=[1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12]
I get unique(A) as 12. And then i want to get new matrices as
for i=1, A(1) as row which is equal to i. And for i=2, A(2) as row which is equal to i.............for i=12 A(12) as rows which is equal to i.
For example:
A(1)=[1
1
1
1
1
1
1
1
1
1]
A(2)=[2
2
2
2
2
2
2
2
2
2]
A(3)=[3
3
3
3
3]
........
A(12)=[12
12
12
12
12
12
12
12
12
12]
How can i do this with using for loop or another way? I want to get new matrices as A(1) to A(12).

採用された回答

Kevin Phung
Kevin Phung 2019 年 9 月 16 日
編集済み: Kevin Phung 2019 年 9 月 16 日
you can store each unique value in a cell array:
A_unique = unique(A);
A2 = cell(size(A_unique))
for i = 1:numel(A_unique)
A2{i} = A(A==A_unique(i))
end
then simple call out:
A{1}
A{2}
A{3}
%... etc
  2 件のコメント
Kevin Phung
Kevin Phung 2019 年 9 月 18 日
for i=1:12
B{i}=(i+3).*A{i}.^2
end
you need a dot (.) before your multiplication and exponent operator.

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

その他の回答 (1 件)

madhan ravi
madhan ravi 2019 年 9 月 17 日
a=arrayfun(@(x)A(A==unique(x)),A,'un',0)
celldisp(a)
If you’re goal is simply to create A with repetitions of 10 then it’s simply:
A = num2cell(repmat(1:12,10,1),1)
celldisp(A)
  3 件のコメント
Mooner Land
Mooner Land 2019 年 9 月 18 日
I want to get every seperate matrix for come calculations but i cant split matrix to 12 seperate matrix.

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

Community Treasure Hunt

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

Start Hunting!

Translated by