matlab中的两个函数
find函数
(1)k = find(X)
寻找矩阵X中的非0数,把对应的下标保存在k中(下标顺序为从上到下从左往右,第一行第一列为1 第二行第一列为2)
find(~x)为寻找所有0元素
find(x<10)为寻找所有小于10的元素
x=[1 2 0;1 0 1;1 0 0]
k2=find(x)
结果为
(2)k = find(X,n)
同上 n在此处代表仅仅保存n个结果
x=[1 2 0;1 0 1;1 0 0]
k2=find(x,3)
(3)k = find(X,n,direction)
direction可选择为'last' 表示取最后四个满足X中条件的元素
x=[1 2 0;1 0 1;1 0 0]
k2=find(x,3,'last')
isprime函数
TF = isprime(X)返回对应矩阵,若元素为素数,则对应位置的数为1,否则为0
x=[3 2 0;13 0 11;12 0 0]
k2=isprime(x)
下面来实现
思路:把1-100的数形成一个向量V,V作为isprime的参数得到对应的向量K,K向量中只含0、1。其中1和V中的素数相对应。此时用find函数,找出所有不为0的数,这些数的下标,即为素数。这里利用了一一对应的关系。
例子:1~9的数 V1为 1 2 3 4 5 6 7 8 9 K为 0 1 1 0 1 0 1 0 0 此时find(K) 得到不为0的数的下标 即 2 3 5 7
V=1:1:100;
K=isprime(V)
K1=find(K)
注:关于冒号的用法 x:y:z 从x到y步长为z
X(x:y:z) = 0 从矩阵第x个数开始到y 间隔z个数 设置为0 (两个0之间差z-1个数)