我有一个循环遍历一个数组...

for i=1:length(myArray)

在这个循环中,我想检查 myArray 的值并将它添加到另一个数组 myArray2 如果满足某些条件。我查看了 MATLAB 文档,但在没有在初始化时声明所有值或一次性将数据读入数组的情况下,找不到任何关于创建数组的内容。

非常感谢!

最佳答案

我猜你想要更复杂的东西

myArray = [1 2 3 4 5];
myArray2 = myArray(myArray > 3);

做你所要求的最简单(但最慢)的方法是
myArray2 = [];
for x = myArray
    if CheckCondition(x) == 1
        myArray2 = [myArray2 x]; %# grows myArray2, which is slow
    end;
end;

你可以用类似的东西来优化它
myArray2 = NaN(size(myArray));
ctr = 0;
for x = myArray
    if CheckCondition(x) == 1
        ctr = ctr + 1;
        myArray2(ctr) = xx;
    end;
end;
myArray2 = myArray2(1:ctr); %# drop the NaNs

您可能还想查看 ARRAYFUN

10-06 15:48