在一个文件' file.mat'中,我有一个矩阵,其大小为(1,100),它是这样垂直写的:
M1 =
Columns 1 through 26:
6 13 3 15 13 12 8 5 5 1 11 8 5 9 1 7 15 9 2 5 7 7 3 9 0 13
Columns 27 through 52:
4 5 7 2 6 6 2 7 12 5 5 12 0 6 11 15 1 2 12 9 13 9 7 13 2 2
Columns 53 through 78:
7 15 4 15 5 12 5 12 14 3 10 15 12 5 5 15 3 3 9 3 6 0 13 13 8 5
Columns 79 through 100:
2 10 0 8 5 5 9 8 13 14 15 14 10 6 7 8 9 10 14 5 2 5
如何在水平矩阵中更改它?
答案 0 :(得分:3)
您可以使用M1.'
或permute(M1,[2 1])
。如果您希望所有数字都在一条水平线上(即成为矢量),您可以使用reshape(M1, [1,100])
答案 1 :(得分:3)
你所拥有的是一个水平向量,但MATLAB会这样显示它,这样你就可以很容易地看到每个元素所属的位置。我想你想要的是将矢量显示为水平矢量,以便你可以复制粘贴它。如果是这样的话:
如果要将其显示为长矢量,则可以使用sprintf
。
sprintf('%i ', M)
ans =
35 3 31 8 30 4 1 32 9 28 5 36 6 7 2 33 34 29 26 21 22 17 12 13 19 23 27 10 14 18 24 25 20 15 16 11
或者如果您需要括号:
['[', sprintf('%i ', M), ']']
ans =
[35 3 31 8 30 4 1 32 9 28 5 36 6 7 2 33 34 29 26 21 22 17 12 13 19 23 27 10 14 18 24 25 20 15 16 11 ]
您也可以按标签分隔:sprintf('%i\t', M)
或逗号:sprintf('%i,', M)
。
如果您想将水平向量重塑为垂直,您可以执行以下操作:
M = M.';
请注意'
is NOT the transpose operator, .'
is.如果您有向量,但不知道它是否为垂直水平,请使用以下表示法:M = M(:).'
或reshape(M, 1, [])
。