【发布时间】:2014-05-21 14:01:21
【问题描述】:
我有一个名为 x 的 1x10(说 10,因为它实际上是 262144,但就我的问题而言,10 就足够了)单元阵列。每个单元格是一个由 0 到 4 个实数值组成的数组。
我想根据每个单元格中的元素数量运行一个 if 条件,而不使用 for 循环(正如我所说,它实际上是 262144 个单元格长,所以 for 循环可能有点重)。
for 循环示例显示我想要做什么:
for i = 1:10
if numel(x{i}) > 2
h(i) = 0;
else
h(i) = 1;
end
end
然后我想在每个单元格上独立运行一个 while 循环,将 h 递增 1 直到它达到单元格长度的值。
len = cellfun(@numel,x)
while h < len
h = h+1;
%code that does thing on each cell still in the while loop
end
我从没在网上看到过类似的东西,尽管我已经看得很透彻了。如果有人能给我一个关于如何在不使用 for 循环(这是我的问题的核心)的情况下在单独的单元格上独立工作的全局指示,我会很棒!
编辑:知道如何对所有单元格的值 X 进行操作也很棒。例如:
k = x{:}(1) < x{:}(2)
这不起作用,但我不知道为什么,我也不知道会怎样。尝试将所有第一个值与所有第二个值进行比较。
【问题讨论】:
-
查看我的更新答案以解决您的编辑问题。