flyingbone 发表于 2006-6-3 21:37

[求助]如何去数组中的零值

如果数据头尾有若干零值,在重新写入时想将零值去掉,应该怎么作呢?

branch 发表于 2006-6-3 22:39

find(data(i,:)=0)

bainhome 发表于 2006-6-4 20:16

find太麻烦...<BR>a=round(rand(1,20));<BR>a(a==0)=[]

branch 发表于 2006-6-5 09:03

可是这样做得不到下标啊<BR>而且和这样有区别吗?探讨一下<BR>data(find(data)=0)=[];

bainhome 发表于 2006-6-5 12:28

&gt;&gt; a1=rand(1,6)<BR>a1 =<BR>    0.9501    0.2311    0.6068    0.4860    0.8913    0.7621<BR>&gt;&gt; a2=(a1&lt;.7)<BR>a2 =<BR>   0   1   1   1   0   0<BR>&gt;&gt; a3=a1(a2)<BR>a3 =<BR>    0.2311    0.6068    0.4860<BR>&gt;&gt; a4=1:length(a1);<BR>&gt;&gt; a5=a4(a2==1)<BR>a5 =<BR>   2   3   4<BR>find的基本功能貌似相当于上述,内置命令中多了很多一般情况不用考虑的选项,计算速度受一定影响,况且中间多写一句意义不大的代码,逻辑运算是MATLAB一项基本功,推荐学习,应尽量不使用官方命令。

branch 发表于 2006-6-5 12:44

<P>谢谢指教,很是受用!!!</P>

多情清秋 发表于 2006-6-6 08:10

回复:(flyingbone)[求助]如何去数组中的零值

<P><FONT color=#ff0000>flyingbone、branch加威望1点,bainhome加威望2点</FONT></P>
<P>多情清秋<BR>06.6.6</P>
页: [1]
查看完整版本: [求助]如何去数组中的零值