3D矩阵分配过程中的尺寸问题



有两个问题。

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

相关内容

  • 没有找到相关文章

最新更新