需要仅使用一个命令创建具有特定元素的矩阵

时间:2013-01-16 01:48:04

标签: matlab matrix vectorization

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

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]

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

我尝试将linspacezeros结合使用,但效果不佳。

请帮助!!

6 个答案:

答案 0 :(得分:10)

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

M( 4:6, 4:6 ) = reshape( 1:9, [3 3] ).'; %'

答案 1 :(得分:6)

是否使用过于复杂的命令?

ans=padarray(reshape(1:9,3,3)',[3 3],'pre')

答案 2 :(得分:3)

不了解Matlab,但在Octave,你可以这样做:

M = [zeros(3, 6); zeros(3), [1:3; 4:6; 7:9]]

答案 3 :(得分:3)

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

M(4:6,4:6) = [1:3;4:6;7:9]

答案 4 :(得分:2)

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

M = zeros(6)

然后只是将其中的一部分设为1:9

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

('符号表示转置)

答案 5 :(得分:0)

纠正亚历克斯的回答:

M = zeros(6)

M(4:6,4:6) = [1,2,3;4,5,6;7,8,9]