从另一个数组的整数元素创建新数组? MATLAB

时间:2014-03-02 20:26:53

标签: arrays matlab integer find isinteger

我创建了一个数组tP,它包含整数和非整数元素的混合。我想创建一个整数元素的新数组。

我想要的结果与返回的结果相同,例如:

tP2=find(tP>300);

即包含整数值的元素编号列表,而不是整数列表本身。

然后,我将选择所需的元素,如下所示:

tP3=tP(tP2);

要对整数执行此操作,我目前拥有的是:

tP2=find(isinteger(int16(tP)));

但是,我只是返回tP2=1而不是元素编号列表。

为什么isinteger在这种情况下不起作用,如何才能达到我要求的结果?感谢。

2 个答案:

答案 0 :(得分:1)

使用round

tp2 = find( tP == round(tP) );

答案 1 :(得分:0)

正如Shai所说,与round的比较是检测整数的有效方法。

接下来,除非您需要其他内容的匹配列表,否则您不需要find。只是比较将创建一个掩码数组,掩码可以用于下标。

tP3 = tP(tP == round(tP));

摆脱tP2并调用find可以节省时间和内存。