如何将值插入到matlab中的多维元胞数组中?
how to insert values in to a multi dimensional cell array in matlab?
我有一个定义为 A = cell(i,8)
;
的元胞数组
说 i = 4
。现在我试图用循环中存在的函数填充 4 x 8 元胞数组。
说,
A = cell(i,8);
for index=1:8
A{i,index} = zeros(C{i}, D{i}, E{i});
end
其中,C{i}、D{i}、E{i}的值为
C{i} = [10] [10] [10] [10]
D{I} = [13] [13] [13] [13]
E{I} = [62] [91] [71] [89]
单元格的内容显然是零,因为我使用了 zeros() 但我需要这一步进行进一步处理。
现在,我应该得到 A(元胞数组)的值 - 4 x 8 维度,如下所示,
10x13x62 double10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double
10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double
10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double
10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double
相反,我得到的输出是,
[] [] [] [] [] [] [] []
[] [] [] [] [] [] [] []
[] [] [] [] [] [] [] []
10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double
我希望我遗漏了循环和元胞数组背后的一些简单逻辑,我对元胞数组和循环的初始化是否正确?如果没有,请建议我找到我上面提到的解决方案。
谢谢。
首先 A{i,index} = zeros(C{i}, D{i}, E{i});
不正确,因为 zero()
不接受数组作为参数。
此代码将解决您的问题
i=4;
A = cell(i,8);
C{i} = {10,10,10,10};
D{i} = {[13] [13] [13] [13]};
E{i} = {[62] [91] [71] [89]};
for j=1:8
for index=1:4
A{index,j} = zeros(cell2mat(C{i}(index)), cell2mat(D{i}(index)), cell2mat(E{i}(index)));
end
end
这是输出
A =
4×8 cell array
Columns 1 through 6
[10×13×62 double] [10×13×62 double] [10×13×62 double] [10×13×62 double] [10×13×62 double] [10×13×62 double]
[10×13×91 double] [10×13×91 double] [10×13×91 double] [10×13×91 double] [10×13×91 double] [10×13×91 double]
[10×13×71 double] [10×13×71 double] [10×13×71 double] [10×13×71 double] [10×13×71 double] [10×13×71 double]
[10×13×89 double] [10×13×89 double] [10×13×89 double] [10×13×89 double] [10×13×89 double] [10×13×89 double]
Columns 7 through 8
[10×13×62 double] [10×13×62 double]
[10×13×91 double] [10×13×91 double]
[10×13×71 double] [10×13×71 double]
[10×13×89 double] [10×13×89 double]
我有一个定义为 A = cell(i,8)
;
说 i = 4
。现在我试图用循环中存在的函数填充 4 x 8 元胞数组。
说,
A = cell(i,8);
for index=1:8
A{i,index} = zeros(C{i}, D{i}, E{i});
end
其中,C{i}、D{i}、E{i}的值为
C{i} = [10] [10] [10] [10]
D{I} = [13] [13] [13] [13]
E{I} = [62] [91] [71] [89]
单元格的内容显然是零,因为我使用了 zeros() 但我需要这一步进行进一步处理。
现在,我应该得到 A(元胞数组)的值 - 4 x 8 维度,如下所示,
10x13x62 double10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double 10x13x62 double
10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double 10x13x91 double
10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double 10x13x71 double
10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double
相反,我得到的输出是,
[] [] [] [] [] [] [] []
[] [] [] [] [] [] [] []
[] [] [] [] [] [] [] []
10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double 10x13x89 double
我希望我遗漏了循环和元胞数组背后的一些简单逻辑,我对元胞数组和循环的初始化是否正确?如果没有,请建议我找到我上面提到的解决方案。
谢谢。
首先 A{i,index} = zeros(C{i}, D{i}, E{i});
不正确,因为 zero()
不接受数组作为参数。
此代码将解决您的问题
i=4;
A = cell(i,8);
C{i} = {10,10,10,10};
D{i} = {[13] [13] [13] [13]};
E{i} = {[62] [91] [71] [89]};
for j=1:8
for index=1:4
A{index,j} = zeros(cell2mat(C{i}(index)), cell2mat(D{i}(index)), cell2mat(E{i}(index)));
end
end
这是输出
A =
4×8 cell array
Columns 1 through 6
[10×13×62 double] [10×13×62 double] [10×13×62 double] [10×13×62 double] [10×13×62 double] [10×13×62 double]
[10×13×91 double] [10×13×91 double] [10×13×91 double] [10×13×91 double] [10×13×91 double] [10×13×91 double]
[10×13×71 double] [10×13×71 double] [10×13×71 double] [10×13×71 double] [10×13×71 double] [10×13×71 double]
[10×13×89 double] [10×13×89 double] [10×13×89 double] [10×13×89 double] [10×13×89 double] [10×13×89 double]
Columns 7 through 8
[10×13×62 double] [10×13×62 double]
[10×13×91 double] [10×13×91 double]
[10×13×71 double] [10×13×71 double]
[10×13×89 double] [10×13×89 double]