如何使用Matlab创建包含不同元素的矩阵

如何使用Matlab创建包含不同元素的矩阵,matlab,Matlab,如何使用MATLAB创建9×9矩阵,前3行全部为零,4到6行全部用5填充,其余行第一个元素为1,其余元素为5?您是否尝试过在初始化时使用值创建矩阵,如下所示: subZero = zeros(3, 9); subFive = 5*ones(3, 9); subsubOnes = ones(3, 1); subsubFive = 5*ones(3, 8); subOneFive = [subsubOnes subsubFive]; yourMatrix = [subZero; subFive;

如何使用MATLAB创建9×9矩阵,前3行全部为零,4到6行全部用5填充,其余行第一个元素为1,其余元素为5?

您是否尝试过在初始化时使用值创建矩阵,如下所示:

subZero = zeros(3, 9);
subFive = 5*ones(3, 9);
subsubOnes = ones(3, 1);
subsubFive = 5*ones(3, 8);

subOneFive = [subsubOnes subsubFive];

yourMatrix = [subZero; subFive; subOneFive];
myMatrix = [...
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    5 5 5 5 5 5 5 5 5
    5 5 5 5 5 5 5 5 5
    5 5 5 5 5 5 5 5 5
    1 5 5 5 5 5 5 5 5
    1 5 5 5 5 5 5 5 5
    1 5 5 5 5 5 5 5 5];

我知道有更简单的初始化方法。

如果您有足够的兴趣,这里有一个答案可以教您如何使用MATLAB:

A = bsxfun(@times, ones(9), kron([0 5 5], [1 1 1])') - ...
    [kron([0 0 4], [1 1 1])' zeros(9,8)]
结果:

A =
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     5     5     5     5     5     5     5     5     5
     5     5     5     5     5     5     5     5     5
     5     5     5     5     5     5     5     5     5
     1     5     5     5     5     5     5     5     5
     1     5     5     5     5     5     5     5     5
     1     5     5     5     5     5     5     5     5

@关系:显然没什么。