我需要使用仅一个命令创建以下矩阵,而无需明确输入:
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
结合使用,但效果不佳。
请帮助!!
答案 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)
答案 5 :(得分:0)
纠正亚历克斯的回答:
M = zeros(6)
M(4:6,4:6) = [1,2,3;4,5,6;7,8,9]