我创建了一个数组tP
,它包含整数和非整数元素的混合。我想创建一个整数元素的新数组。
我想要的结果与返回的结果相同,例如:
tP2=find(tP>300);
即包含整数值的元素编号列表,而不是整数列表本身。
然后,我将选择所需的元素,如下所示:
tP3=tP(tP2);
要对整数执行此操作,我目前拥有的是:
tP2=find(isinteger(int16(tP)));
但是,我只是返回tP2=1
而不是元素编号列表。
为什么isinteger
在这种情况下不起作用,如何才能达到我要求的结果?感谢。
答案 0 :(得分:1)
使用round
tp2 = find( tP == round(tP) );
答案 1 :(得分:0)
正如Shai所说,与round
的比较是检测整数的有效方法。
接下来,除非您需要其他内容的匹配列表,否则您不需要find
。只是比较将创建一个掩码数组,掩码可以用于下标。
tP3 = tP(tP == round(tP));
摆脱tP2
并调用find
可以节省时间和内存。