3

我只需要使用一个命令来创建以下矩阵,而无需明确输入:

M = [0 0 0 0 0 0;...
     0 0 0 0 0 0;...
     0 0 0 0 0 0;...
     0 0 0 1 2 3;...
     0 0 0 4 5 6;....
     0 0 0 7 8 9]

我是新手,所以我不能使用任何复杂的命令。

我尝试linspace结合使用,zeros但效果不佳。

请帮忙!!

4

6 回答 6

10

M如果尚未定义矩阵,您可以跳过zeros(6)(由AlexL提出)并直接转到

M( 4:6, 4:6 ) = reshape( 1:9, [3 3] ).'; %'
于 2013-01-16T06:20:45.287 回答
6

是不是使用了太复杂的命令?

ans=padarray(reshape(1:9,3,3)',[3 3],'pre')
于 2013-01-16T04:07:02.730 回答
3

另一个简单而紧凑的 oneliner,结合了已经为 MATLAB 和 Octave 提到的一些东西:

M(4:6,4:6) = [1:3;4:6;7:9]
于 2013-01-16T08:51:06.030 回答
3

不了解 Matlab,但在 Octave 中,您可以执行以下操作:

M = [zeros(3, 6); zeros(3), [1:3; 4:6; 7:9]]
于 2013-01-16T02:05:49.930 回答
2

也许您可以尝试创建一个充满的 6x6 矩阵:

M = zeros(6)

然后只是将它的一部分设置为1:9

M(4:6,4:6) = reshape(1:9, 3, 3)' 

('符号表示转置)

于 2013-01-16T01:52:33.467 回答
0

纠正亚历克斯的回答:

M = zeros(6)

M(4:6,4:6) = [1,2,3;4,5,6;7,8,9]
于 2013-01-16T02:00:17.837 回答