Arrays 在octave/matlab中填充多维数组以在octave/matlab中创建瀑布图

Arrays 在octave/matlab中填充多维数组以在octave/matlab中创建瀑布图,arrays,matlab,multidimensional-array,octave,Arrays,Matlab,Multidimensional Array,Octave,我试图创建一个多维数组,这样我就可以创建一个八度瀑布图,一个matlab类型的程序(请注意,倍频程没有瀑布图选项,因此我必须进行修改。 我有多个阵列,频率在第一列,振幅在第二列。 示例:当在数组中循环时,这些数组称为排序数组,它们都需要放在单独页面上的多维数组中 4000, .5 3002, .1234 1093, .7 我试图让这些数组中的每一个都(sort\u数组)通过使用for循环将所有内容添加到一个数组中,以便于打印和导出为文本文件,从而添加到单个多维数组中。我还想过使用k作为多维数组

我试图创建一个多维数组,这样我就可以创建一个八度瀑布图,一个matlab类型的程序(请注意,倍频程没有瀑布图选项,因此我必须进行修改。

我有多个阵列,频率在第一列,振幅在第二列。 示例:当在数组中循环时,这些数组称为排序数组,它们都需要放在单独页面上的多维数组中

4000, .5
3002, .1234
1093, .7
我试图让这些数组中的每一个都(sort\u数组)通过使用for循环将所有内容添加到一个数组中,以便于打印和导出为文本文件,从而添加到单个多维数组中。我还想过使用k作为多维数组的页面选项。但我不断发现维度不匹配。有什么办法解决这个问题吗

请注意,我省略了sort_数组代码,只是将上面名为sort_数组的示例数组作为数组外观的示例。其中大约有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
如果我输入ma(:,:,2),我会得到下一个


谢谢

您的错误在这里:
ma(:,:,k)=[ma;ma_tmp];

你混淆了两个概念

将新矩阵连接到当前矩阵:

ma = [ma; ma_tmp];

将新矩阵直接分配到正确的索引(这是更干净、更高效的解决方案):


但你不能两者兼得。

谢谢,我找到了一份工作

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];

那么问题是什么?@Dan我如何才能将多个数组(在我的示例中是sort_数组)添加到1个多维数组中?
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];