有两个问题。
---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×152,并且右侧的尺寸为1440×151。
我发现有一个额外的列用"0"填充。这次我手动删除了这一列,但有没有什么方法可以保持3d形式(立方体矩阵?(,用"0"自动填充较小矩阵的列/行,或者扔掉较大矩阵额外列/行中的数据?
谢谢!
感谢Adriaan,第一个问题是从一个错误的测试开始的。对于第二个问题,我找到了一个类似的简单解决方案
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