www.qcfz.net > mAtlAB中想将某个矩阵中,全部为零的一行删除,怎么编程

mAtlAB中想将某个矩阵中,全部为零的一行删除,怎么编程

clcclearA=rand(100,100);A(15,:)=zeros(1,100);A(20,:)=zeros(1,100);A1=sum(abs(A'));index=find(A1==0);A(index,:)=[];其实非常简单,设A是这个矩阵,用sum求每一行的绝对值的和,如果为零说明这行全为零,找到那些行,从矩阵中去除即可代码...

>> A=fix(10*rand(1,10)+5); %随机生成一个1X10的向量 >> A(1:2:10)=0; %令奇数位都为0 >> A(find(A==0))=[];%找到A中0的位置,并令其为空,即删除

两种方法: 1,将所有要删除的行标顺序排列成向量V,然后用命令 "矩阵变量名"(V,:)=[];%可删除与"矩阵变量名"对应的矩阵中的指定行(通过V指定),并改变原矩阵维数 2,将所有要保留的行标顺序排列成向量V,然后用命令 "矩阵变量名"="矩阵变量名...

数组(行数+1,:)=0 例如,矩阵a有6行 命令:a(6+1,:)=0

把需要去掉的元素赋值为空,即[],即可。 A(1:2,:)=[]

将a中为0的数据删除,会不会得到一个长短不一的矩阵,接下来还能进行正常的数据处理吗,比如进行回归啊,加减乘除啊之类的? 答:不可以。

ave=mean(ori(:)) ; H = ori - ave;

假设举证为a [m,n]=size(a); for i=1:n if i~=1 a(:,i)=0; end end 这个是将矩阵a第一列保存他原来的值 其他全设为零哈

a=[A(1:i-1,:);a(i+1:length(a,:))]

A = [1 0 2 0 3 4 0; 0 1 0 2 0 3 0; 0 0 0 1 2 0 4 ];[m,n] = size(A);% 求每行最长非零元素的长度maxn = max(arrayfun(@(x) sum(A(x,:)~=0),1:m));R = zeros(m,maxn);for p = 1:m a = A(p,:); a(a==0) = []; w = length(a); R(p,1:w) = a;endR...

网站地图

All rights reserved Powered by www.qcfz.net

copyright ©right 2010-2021。
www.qcfz.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com