查看单个帖子
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 循环时建立数组

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

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



更多&回答...
poster 当前离线   回复时引用此帖