matlab最大的优势就是矩阵操作,往往用C语言很难实现或者实现起来很复杂的操作,在matlab中使用矩阵都能很简单的完成,下面对我所用到的find函数进行说明:
用一个3乘3的矩阵举例说明,A=[8 1 6
3 5 7
4 9 2]
matlab中find的三种用法:
1、I = find(A>5) 返回矩阵A中元素值大于5的元素的索引,这里I是找到的所有元素的索引组成的一维向量,索引是按列进行的,如元素8的索引是1,元素9的索引是6等等
2、[I J] = find(A>5) 返回矩阵A中元素值大于5的元素的行、列索引,这里I,J分别是找到的所有元素的行和列对应的索引组成的两个一维向量,如元素8的索引I=1,J=1,元素9的索引I=3,J=2等等
3、[I J] = find(A>5)返回矩阵A中元素值大于5的元素的行、列索引和索引对应的值,如I=1,J=1对应元素值为8。但是在使用时V返回值一直为1,可能是matlab的find函数有问题
实例:
对于上面的矩阵A如果我们要将A中所有大于5的元素都替换为0,程序如下:
I=find(A>5) %%找到A中所有大于5的元素
A(I)=0;%%将A中所有大于5的元素替换为0
程序运行结果:
A= [0 1 0
3 5 0
4 0 2]