Matlab中,在矩阵中找到0的位置,然后把0放在最前面,后面的数字依序排列:例如矩阵A=[2 3 9 4 0 5 7 6 8 1],改后变为A=[0 5 7 6 8 1 2 3 9 4],这段代码应该怎么写?
如何在矩阵A中找到0的位置,然后把0放在最前面,后面的数字依序排列?
改问题实际上就是查找、提取、排序问题,此问题可以这样来解决。
1、使用find函数,在矩阵A中查找0的位置;即
[m,n]=find(A==0); %m是行的位置,n是列的位置
2、提取含0以后的数据并赋值给A2,提取0以前的数据并赋值给A1
3、排序,B=[A2,A1],将0以后的数据放在首位,然后再0以前的数据排在后面
4、执行代码
A=[2 3 9 4 0 5 7 6 8 1]
[m,n]=find(A==0);
A1=A(m,1:n-1);
A2=A(m,n:end);
B=[A2,A1]
5、执行结果