如何在水平矩阵中显示我的垂直矩阵?

时间:2016-09-08 13:19:15

标签: matlab

在一个文件' 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

如何在水平矩阵中更改它?

2 个答案:

答案 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, [])