如何删除矩阵末尾的非零值

3次查看(最近30天)
金融先生
金融先生 2021年8月13日
评论道: 金融先生2021年8月13日
假设我有以下数组:
M = [1 1 1;0 2 2;3 3 0;4 4 0;0 5 0]
M = 5×3
1 1 1 0 2 2 3 3 0 4 4 0 0 5 0
我如何设置所有元素从每行结束到第一个非零值NaN?
结果应该是这样的:
M = [1 1 1;0 2 2;3 3南;4 4南;南5南]
M = 5×3
1 1 1 0 2 2 3 3 NaN 4 4 NaN 5 NaN
重要的是,只有末尾的零值被设置为NaN,而不是所有元素都为零。
谢谢你!

接受的答案

Chunru
Chunru 2021年8月13日
M = [1 1 1;0 2 2;3 3 0;4 4 0;0 5 0]
M = 5×3
1 1 1 0 2 2 3 3 0 4 4 0 0 5 0
i = 1:尺寸(M, 2)
if (M(:, i), 1,“最后一次”);
M(idx+1:end, i) = nan;
结束
M = 5×3
1 1 1 0 2 2 3 3 NaN 4 4 NaN 5 NaN
% m = [1 1 1;0 2 2;3 3南;4 4南;南5南]

更多的答案(0)

标签

s manbetx 845


释放

R2020b

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!