【发布时间】:2018-05-17 12:27:33
【问题描述】:
我有一个单元格数组定义为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(Cell array) - 4 x 8 Dimension 的值,如下所示,
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
我希望我在循环和单元格数组后面缺少一些简单的逻辑,我对单元格数组和循环的初始化是否正确?如果没有,请建议我找到上面提到的解决方案。
谢谢。
【问题讨论】:
-
正如您自己所说,
i等于4。您如何期望A{i,index} = zeros(C{i}, D{i}, E{i});将值存储在第 4 行以外的行中? -
哦,首先,感谢 Sardar 的回复,我有点困惑,因为当我创建一个
A = cell(i,8);时,它会创建一个1x8单元格数组,所以我确信单元格数组已经初始化正确,但我清楚地搞砸了循环中的某些地方,我应该如何重写A{i,index} = zeros(C{i}, D{i}, E{i});以获得预期的输出?你能帮忙吗? -
非常感谢您提供宝贵的信息 Sardar.. 非常感谢
-
嗨,Sardar,很抱歉再次打扰,我已经像你说的那样更改了代码,但是
4x8单元格数组中的所有单元格都变成了10x13x89 double。相反,它应该是10x13xN,N 应该分别取 `C{I}、D{I}、E{I} 的值,如上所述,但它只存储 E{i} 的值,请建议。
标签: arrays matlab for-loop indexing cell-array