Matlab - 将新列附加到矩阵

时间:2016-02-22 19:07:48

标签: matlab matrix

我是Matlab世界的菜鸟,我想在矩阵的所有行的开头附加一个值。

mat =

16     2     3    13
 5    11    10     8
 9     7     6    12
 4    14    15     1

myval = 98;

我想得到一个矩阵:

mat =

98   16     2     3    13
98    5    11    10     8
98    9     7     6    12
98    4    14    15     1

我该怎么办?

我知道我们可以使用[a b]之类的横向连接,但此处myvalmat的维度不同

我这样做了:

m  = ones(4,1)*98

m =

98
98
98
98

mat = [m mat]

 mat =

98    16     2     3    13
98     5    11    10     8
98     9     7     6    12
98     4    14    15     1

有更好的方法吗?

谢谢

3 个答案:

答案 0 :(得分:2)

Anothe单线解决方案可能是:

mat=[repmat(myval,size(mat,1),1) mat]

通过使用size(mat,1),您可以自动处理行数。

希望这会有所帮助。

Qapla'

答案 1 :(得分:1)

我认为你做的很好。您可以通过组合语句来单行化:

mat = [(myval*ones(4,1)) mat];

答案 2 :(得分:0)

您可以将转置(')与横向连接(horzcat[x y])一起使用:

>> z = magic(4)
z =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
>> c = [98 98 98 98]
c =
    98    98    98    98
>> [c' z]
ans =
    98    16     2     3    13
    98     5    11    10     8
    98     9     7     6    12
    98     4    14    15     1
>> horzcat(c', z)
ans =
    98    16     2     3    13
    98     5    11    10     8
    98     9     7     6    12
    98     4    14    15     1