我想删除矩阵中的所有零。这些零出现在每行的末尾。见例:
5.7327 7.1388 7.9082
6.5109 7.1689 8.1205
7.0741 6.9802 8.0936
7.4028 0 7.8214
7.4871 0 0
0 0 0
0 0 0
如果我使用out = out(out~ = 0),它给出了一个向量而不是我的矩阵......
对于输出我想得到:
5.7327 7.1388 7.9082
6.5109 7.1689 8.1205
7.0741 6.9802 8.0936
7.4028 7.8214
7.4871
谢谢你的帮助
答案 0 :(得分:2)
在Matlab中,矩阵不能具有不同行长度的不同列。您可以执行许多操作,具体取决于删除零的目的: 1.用NaN值替换零:
out(out==0)=nan;
2。将矩阵转换为单元格数组并从每个单元格中删除零:
outCell = mat2cell(out,ones(size(out,2),1),size(out,1))
outCell = cellfun(@(o) o=o(o~=0),outCell,'uniformoutput',false);
请详细说明您要删除零的原因