我有一个 n*n
矩阵,我想每 3 列提取一次并将结果保存在不同的变量中。
我知道可以这样做:
A1 = A(:,1:3);
A2 = A(:,4:6);
A3 = A(:,7:9);
但我想简化和自动化它以管理大量数据!
A =
[1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81]
预期结果:
A1 =
[1 2 3
2 4 6
3 6 9
4 8 12
5 10 15
6 12 18
7 14 21
8 16 24
9 18 27]
A2 =
[4 5 7
8 10 12
12 15 18
16 20 24
20 25 30
24 30 36
28 35 42
32 40 48
36 45 54]
A3 =
[7 8 9
14 16 18
21 24 27
28 32 36
35 40 45
42 48 54
49 56 63
56 64 72
63 72 81]
最佳答案
你真的不应该这样拆分 A。如果您真的想在 3 列 block 中解决 A,请使用类似
A = (1:9).*((1:9).');
%% create anonymous function which can be called as Ac(1), Ac(2) and so on
Ac = @(n) A(:,(n-1)*3+1:n*3)
octave:2> Ac(1)
ans =
1 2 3
2 4 6
3 6 9
4 8 12
5 10 15
6 12 18
7 14 21
8 16 24
9 18 27
octave:3> Ac(2)
ans =
4 5 6
8 10 12
12 15 18
16 20 24
20 25 30
24 30 36
28 35 42
32 40 48
36 45 54
的内容
关于matlab - 如何自动创建变量,这些变量是从矩阵中提取的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696343/