代码的坑真是无处不在,今儿又遇到一个,真是~~坑
Matlab转IDL语句有这样一条:
a(b==0)=0
a,b是同大小的矩阵,此语句是把a中b为0的位置的值改为0.
IDL中开始我写为了这样一个语句:
a(where(b eq 0))=0
where语句的意思是找到b为0的所有位置的索引值,使用这样一个语句,理论上是可以实现之前的结果的~~结果就在此时~~雷区出现了。
当b中没有等于0的元素时,where语句查找到最后,很任性的就把索引值定义为了最后一个元素,从而,造成,当b中没有0值时,执行完了语句,a的最后一个值也会被赋为0.
呜呼哀哉,还是乖乖滴写循环赋值了~~~