从矩阵中删除一个值并向左移动值

时间:2013-10-02 06:29:34

标签: matlab matrix

我有一个像这样的矩阵:

A= [5 3 2 1 5 6;
    3 2 5 1 5 3] 

我必须从第二行删除数字1,然后向左移动(数字5和3)。结果必须是:

A= [5 3 2 1 5 6;
    3 2 5 5 3 X]

我把X,因为无论这个号码发生了什么。 A的大小无法修改。

1 个答案:

答案 0 :(得分:2)

这是一个函数,它允许您指定要移除的向量中元素的位置,并在末尾用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);