次のようなマトリックスがあります。
A= [5 3 2 1 5 6;
3 2 5 1 5 3]
2 行目から数字の 1 を削除し、(数字の 5 と 3) を左にシフトする必要があります。結果は次のようになります。
A= [5 3 2 1 5 6;
3 2 5 5 3 X]
この数がどうなろうと、X を付けました。A のサイズは変更できません。
これは、削除するベクトル内の要素の位置を指定NaN
し、最後にパディングして長さを同じに保つ機能です。
function newVec = removeElements(oldVec, elementsToRemove)
%//You should add some error checking here regarding the sizes of the matrices and making sure you're not out of bounds etc
newVec = [oldVec NaN(length(elementsToRemove))];
newVec(elementsToRemove) = [];
end
このように使用します
A= [5 3 2 1 5 6;
3 2 5 1 5 3];
A(2, :) = removeElements(A(2,:), 4);