![](/img/trans.png)
[英]Matlab: construct a binary matrix satisfying horizontal and vertical constraints
[英]how to display my vertical matrix in an horizontal matrix?
在一個文件“ 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
如何在水平矩陣中更改它?
您可以使用M1.'
或permute(M1,[2 1])
。 如果您希望所有數字都在一條水平線上(即作為矢量),則可以使用reshape(M1, [1,100])
您擁有的是一個水平向量,但是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)
。
如果要將水平矢量重塑為vertical ,可以執行以下操作:
M = M.';
注意, '
不是轉置運算符” .'
是。 如果您有矢量,但不知道它是否為垂直的水平,請使用以下表示法: M = M(:).'
或reshape(M, 1, [])
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.