![]() |
[求助]数组下标提取的疑问
:biggrin:
程序: A=1:100; B1=isprime(A) B2=A(isprime(A)) 输出结果: B1= Columns 1 through 15 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 Columns 16 through 30 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 ............................................................... Columns 91 through 100 0 0 0 0 0 0 1 0 0 0 B2= Columns 1 through 15 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 Columns 16 through 25 53 59 61 67 71 73 79 83 89 97 我的问题是: 既然isprime(A)只能返回0和1两个值,那么A(isprime(A))的返回值要么是A(0),要么是A(1),即B2的值只能是不存在(A(0))或是1(A(1)) matlab里面是怎样分配的命令,才使凡是不为0的地方提取的值都是原来数组中对应位置的值?? 回复为盼,先谢了! |
首先向受灾的人们祈祷.
A=1:100; B1=isprime(A) 这步操作之后,B1的类型是 logica 而不是 double l B2=A(isprime(A))等价于 B2=A(B1);其中的下标是逻辑类型,那么matlab会追踪到原来的指数并显示。 如果增加一步 B1=double(B1); 类型改为double 型。你就会等到你分析出的结果。 |
受益匪浅,谢谢了,andye
|
所有时间均为北京时间。现在的时间是 11:10。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.