我想要使用加載文本文件的數據製作矩陣矢量。我正在使用cat
。通過加載數據「MATLAB」創建矩陣矩陣
n : number of matrices.
p : number of columns of matrices.
每個矩陣都有4行。 例如我在一個文本文件中有1200個數字,而p
是3,所以n=100
。 怎麼做到的?!
這就是我試圖做的:
X = cat(n,[1...p; ; ; ],...,[ ; ; ; ]);
我想要使用加載文本文件的數據製作矩陣矢量。我正在使用cat
。通過加載數據「MATLAB」創建矩陣矩陣
n : number of matrices.
p : number of columns of matrices.
每個矩陣都有4行。 例如我在一個文本文件中有1200個數字,而p
是3,所以n=100
。 怎麼做到的?!
這就是我試圖做的:
X = cat(n,[1...p; ; ; ],...,[ ; ; ; ]);
的描述是有點模糊,但這裏是我會建議:
reshape
命令在你的情況,你可能需要爲第3步做這樣的事情:
raw = rand(1200,1); %Assuming your data looks something like this
X = reshape(raw,[],4,3);
對於1200這個值會給你一個答案100x4x3。只要確保它是4x3的好倍數,如果你像這樣應用重塑。
更新
顯然,這是提問者一直在尋找的變化,一個4x3x100矩陣:
X =reshape(r,4,3,100)
感謝您的回答,但它會生成三個1200 * 4矩陣?! –
r = 1 +(2-1)。* rand(1200,1);現在我想把這個數字放在一個4 * 3 ... X =貓(100,...),並申請例如:X(3,:,56) –
@AlekMorfy如果我做'r = 1 +( 2-1)* rand(1200,1);'檢查'size(reshape(r,[],4,3))'很好地給了我100x4x3。這意味着你可以通過'X(3,:,56)'來訪問它。利用'reshape'的輸入來獲得你想要的東西。 ---可能是'重塑(r,100,4,3)'或'重塑(r,100,3,4)' –
如果你知道矩陣(n)的數量,可以將其存儲到單元陣列,這樣
myCellArray = cell(n,1);
for it = 1:n
myCellArray{it} = (...) %Load matrix whatever how you do it (Load, fread,...)
end
或者僅僅通過使用動態分配的,但並沒有真正有效的,
myArray = [];
myArray = [myArray newLoadArray];
單元陣列主要是爲不規則大小的數據而設計的。由於這裏一切都很好4x3(或其他一些常規大小),這感覺就像是不使用矩陣的浪費。 –
經過另一次閱讀,我明白他更多的問題。你說得對,單元陣列不是他所需要的。 – Vuwox
這是不夠的信息,請描述相關的變量和文件的樣子,當你嘗試你的解決方案時會發生什麼。 –
'cat'中的第一個參數是要連接的維度,而不是要連接的元素數量。在你的情況下,第一個參數可能是1,2或3,這取決於你想要達到什麼。 –
我在一個txt文件的一列中有數字1 ... n(1200)。我想將這些數據導入到4 * 3矩陣或其他維度的向量中...... –