我有一个矩阵A,我想在每列中填充NaN,直到遇到数值.
例
A =
[ 0 0 0
0 0 6
5 7 0]
Run Code Online (Sandbox Code Playgroud)
应该
A =
[NaN NaN NaN
NaN NaN 6
5 7 0]
Run Code Online (Sandbox Code Playgroud)
有没有办法对这个问题进行矢量化,而不是在两个for循环步骤中进行
谢谢你的帮助!
用于max在每列中查找第一个非零(如果有),然后bsxfun为应设置为的值生成掩码NaN:
[valid, row] = max(A~=0);
row(~valid) = size(A,1)+1; %// in case some column contains all zeros
A(bsxfun(@lt, (1:size(A,1)).', row)) = NaN;
Run Code Online (Sandbox Code Playgroud)