2013-11-25 39 views
-1

我試圖創建一個多維數組,因此我可以在八度中創建一個瀑布圖,這是一種matlab類型的程序。 (請注意八度不具備瀑布圖選項,所以我必須做出一個變通在八度/ matlab中填充多維數組以創建八度/ matlab中的瀑布圖

我有有在第二列的第一列,幅頻多個陣列 例如:當通過環的陣列,其被稱爲sort_array它們各自需要放置成多維陣列的單獨的頁上。

4000, .5 
3002, .1234 
1093, .7 

我試圖讓每個這些陣列(sort_array)添加到單個多維的數組通過使用for循環將所有內容都添加到一個數組中,以便更容易繪製並導出爲文本文件。我還認爲使用k作爲多維數組的頁面選項。但我不斷收到尺寸不匹配。任何想法如何解決這一問題?

請注意我遺漏了sort_array代碼,並且剛剛包含上面的示例數組sort_array作爲數組看起來像的示例。其中將有約9000人。

md=[]; 
for k=1:9000 
md_tmp=[sort_array(:,1),sort_array(:,2)] 
ma(:,:,k)=[ma;ma_tmp]; 
end 

所以,當我在MA型(:,:,1)我會得到

4000, .5 
3002, .1234 
1093, .7 

,如果我在馬型(:,:,2)我會得到下一個一。

感謝

+0

那麼,有什麼問題的工作? – Dan

+0

@Dan如何將多個數組(我的示例中的sort_array)添加到1個多維? –

回答

1

你的錯誤是在這裏:ma(:,:,k)=[ma;ma_tmp];

你是兩個概念混淆。

要麼串連新的矩陣到當前之一:

ma = [ma; ma_tmp]; 

OR

直接分配新的矩陣,以正確的索引(這是更清潔,更高效的解決方案):

ma(:,:,k) = ma_tmp; 

但是你不能這樣做。

0

感謝我發現周圍

sort_array=sortrows(arraytmp,-1); %sort by freq 
k_tmp=repmat(k,length(sort_array(:,2)),1); %to create page for freq and amp in multidimensional array 
ma_tmp=[sort_array(:,1),sort_array(:,2),k_tmp]; 
ma=[ma;ma_tmp];