1
所以我想連接一個m x n
矩陣來獲得1 x mn
矩陣。我想要連接的矩陣是從while循環生成的。儘管列數始終爲3
,但我無法知道每次迭代會有多少行。此外,每次迭代的行大小可能並不總是相同的。如何在Matlab中處理「使用vertcat矩陣的維度連接的矩陣不一致」?
的代碼在該行的大小都等於6
箱子運行,但在他們是不相等的情況下,我得到一個錯誤:代碼
Error using vertcat Dimensions of matrices being concatenated are not consistent.
部分如下:
A = [];
B = [];
searchArea = 2;
for ii = 1: numel(velocity)
Do ....
while area(ii,:) < searchArea
Do ....
% COLLATE vectors for A
A = [A; [Ax(ii), Ay(ii), Az(ii)]];
Do ...
end
%# Copy the A into new variable (B) and Reshape into row vector so as to associate each row to its corresponding velocity
B = [B; reshape(A.',1,[])];
A = [];
end
有人請告訴我我在做什麼錯在這裏。如果有需要,我會進一步澄清。多謝你們!
通常,我們使用[單元格陣列](https://www.mathworks.com/help/matlab/cell-arrays.html)來存儲不同大小的數組。 –
謝謝@奧尼爾。我最初試圖避免使用單元陣列。在任何情況下,當我嘗試創建一個單元格數組存儲如下:'A = cell(numel(velocity),1);'然後在循環中我有:'B = [B; A];''我遇到兩個問題:1)循環停止(沒有任何錯誤消息),一旦遇到一個數組比以前的迭代更多的行。 2)而不是從索引1開始存儲'B',它從索引101開始(速度從1-100)。任何想法這裏有什麼不對? – User110
哦,我看到我的錯誤:那應該是'B {ii} = A;'。它現在有效!也許我應該堅持單元陣列。謝謝一堆! – User110