在Matlab/octave iPrime问题中拆分素数和非素数
我在八度音阶中运行了一些测试代码,发现iPrime似乎不适用于小数,有人有解决办法吗。我试着把数组分成素数和非素数,数组中有小数和整数。请参见下面的示例代码。错误消息为isprime:需要正整数 感谢杰瑞德在Matlab/octave iPrime问题中拆分素数和非素数,matlab,octave,primes,Matlab,Octave,Primes,我在八度音阶中运行了一些测试代码,发现iPrime似乎不适用于小数,有人有解决办法吗。我试着把数组分成素数和非素数,数组中有小数和整数。请参见下面的示例代码。错误消息为isprime:需要正整数 感谢杰瑞德 要让我走到这一步,您可以使用以下功能: floatisprime@(a)(round(a)==a)&isprime(round(a)) 逻辑似乎有点奇怪,但如果值是整数rounda==a,下一个整数是素数isprimerounda,那么它就是素数 如果您使用上一个问题中的setdi
要让我走到这一步,您可以使用以下功能:
floatisprime@(a)(round(a)==a)&isprime(round(a))
逻辑似乎有点奇怪,但如果值是整数rounda==a,下一个整数是素数isprimerounda,那么它就是素数
如果您使用上一个问题中的setdiff思想,那么您没有问题:
noprimes=setdiff(a,primes(max(a)))
然后在noprimes上迭代您可以使用此函数:
floatisprime@(a)(round(a)==a)&isprime(round(a))
逻辑似乎有点奇怪,但如果值是整数rounda==a,下一个整数是素数isprimerounda,那么它就是素数
如果您使用上一个问题中的setdiff思想,那么您没有问题:
noprimes=setdiff(a,primes(max(a)))
然后在noprimes上迭代如果你看这些函数的代码,你会发现isprime是基于素数的,所以你的setdiff选项可能更有效。如果你看这些函数的代码,你会发现isprime是基于素数的,所以你的setdiff选项可能更有效。