如何將此行更改爲列,此時所有750個條目都在一行上?將行向量更改爲列向量
p = normal(1:750)-1;
我曾嘗試:
columns = 1;
p = normal(1:750)-1;
p = p(1:columns);
我也曾嘗試:
rows = 1000;
p = normal(1:750)-1;
p = p(1:rows)';
如何將此行更改爲列,此時所有750個條目都在一行上?將行向量更改爲列向量
p = normal(1:750)-1;
我曾嘗試:
columns = 1;
p = normal(1:750)-1;
p = p(1:columns);
我也曾嘗試:
rows = 1000;
p = normal(1:750)-1;
p = p(1:rows)';
我會想象你可以只轉:
p = (normal(1:750)-1)'
這是常見的做法MATLAB使用colon
運營商:
用於將任何東西轉換爲列向量。如果不知道或關心如果normal
是一個行向量或列向量,就可以強制p
是一個列向量,就像這樣:
p = p(:);
在此之後,p
是保證是一個列向量。
因此,a = 1:5會生成一個行向量,但b = a(:)是列向量? – John
@John是的,確切地說。 –
這是我的首選方法,因爲如果您已經有一個列向量,它不會將列向量轉換爲行向量。 – raoulcousins
設置p = p(:);確實是最好的方法。
小心使用'做轉置。我已經看到它多次失敗。非共軛轉置的matlab運算符實際上是'。'所以你會這樣做:
p = p.'
如果你想不做複雜的共軛轉置。
謝謝丹在文檔中的任何地方都找不到! [上一個問題](http://stackoverflow.com/questions/13412283/matching-row-samples-to-class-labels)是我問爲什麼。 –
確定順便說一句,這可能是你第一次嘗試的嘗試:p = p(1:length(p),1);但使用轉置肯定是正確的方法。 – Dan
如果有人正在使用複數,請注意'''(或'ctranspose()')運算符是複共軛轉置。更多信息請參閱這裏的文檔:https://www.mathworks.com/help/matlab/ref/ctranspose.html。如果您想要非共軛轉置,請改用'。''(或'transpose()')。 – jvriesem