有两个问题。
--- 1 ---
我可以顺利地将较小的矩阵分配给较大的零矩阵,如下所示:
a = zeros(5,5,2);
b = [1 2 3];
a = b;
所以我尝试将RawData从文件加载到3D矩阵:
G = ["/Users/ripfreeworld/Documents/MATLAB/RawData/G01.txt",
"/Users/ripfreeworld/Documents/MATLAB/RawData/G02.txt",
"/Users/ripfreeworld/Documents/MATLAB/RawData/G03.txt",
"/Users/ripfreeworld/Documents/MATLAB/RawData/G04.txt"];
rawdata = zeros(1500,200,4);
for i = 1 : 4
rawdata(:,:,i) = load(G(i),'ascii');
end
它在第一次迭代时就卡住了,而没有从加载函数中获取任何数据。
然后,我用zeros()注释了这一行。并且第一次迭代成功。与以前的简单代码有什么区别?
--- 2 --- 第二个问题是:
无法执行分配,因为左侧的尺寸为 1440 x 152,右侧尺寸为1440 x 151。
我发现还有一个额外的列,其中填充了“ 0”。这次我手动删除了此列,但是有什么方法可以通过自动用“ 0”填充较小矩阵的列/行或丢弃多余列/行中的数据来保持3d形式(多维数据集矩阵?)更大的矩阵?
谢谢!
答案 0 :(得分:0)
感谢阿德里亚恩,第一个问题是从一个错误的考验开始的,它是通过覆写。 对于第二个问题,我找到了一个简单的解决方案,它很相似
p=zeros(5,10)*1/0;
for i=1:5
for m=1:10
if isprime((i-1)*10+m-1)
p(i,m)=(i-1)*10+m-1;
end
end
end
>> p p = NaN NaN 2 3 NaN 5 NaN 7 NaN NaN NaN 11 NaN 13 NaN NaN NaN 17 NaN 19 NaN NaN NaN 23 NaN NaN NaN NaN NaN 29 NaN 31 NaN NaN NaN NaN NaN 37 NaN NaN NaN 41 NaN 43 NaN NaN NaN 47 NaN NaN