2017-10-14 81 views
0

我在表格10點二維矩陣MATLAB:我如何使用for循環將10個2D矩陣變成單個3D矩陣?

matrix_Q1 = [Q1_inner(:,1) Q1_outer(:,2) Q1_inner(:,1) Q1_outer(:,2)]; 

這是我的迴路電流,這是不正確

n = 1; 
for X_num = matrix_Q1 : matrix_Q10; 
    X_new(:,:,n) = X_num; 
    n = n+1; 
end 

我知道如何創建與x(:,:,1)語法3D矩陣,但是怎麼辦我以循環格式來做這件事?

+0

歡迎堆棧溢出。請回顧[我如何問一個好問題](https://stackoverflow.com/help/how-to-ask)。你已經嘗試過什麼了?這不是一個代碼寫作或輔導服務。問題應該顯示**研究證據,並嘗試自己解決問題**,清楚地說明您的特定編碼相關問題,以及[最小,完整和可驗證示例](https://stackoverflow.com/help/mcve),所以我們有足夠的信息能夠提供幫助。 – FluffyKitten

+0

你能否改變他們首先被保存的方式? – Steve

回答

0

爲什麼你想用它創建一個3D矩陣?也許你可以使用單元陣列代替(see here details on cells),然後你可以使用X_new {i}或X_new {i,j}來存儲每個2D矩陣?

0

事實上,所有十個二維矩陣都是不同的名稱並不適合使用循環,除非您使用eval函數,我通常不喜歡使用該函數,但在這種情況下是必需的。

我這樣做:

sz = size(matrix_Q1); 

X_new = zeros(sz(1),sz(2),10); 

for n = 1:10 
    X_new(:,:,n) = eval(['matrix_Q',num2str(n)]); 
end