繁体   English   中英

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

[英]Create new array from integer elements of another array? MATLAB

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

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

tP2=find(tP>300);

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

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

tP3=tP(tP2);

为此,我目前拥有的是:

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

但是,我没有得到元素编号列表,而只是返回了tP2=1

为什么isinteger在这种情况下不起作用,如何获得所需的结果? 谢谢。

使用round

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

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

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

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

摆脱tP2find调用应该节省时间和内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM