如何提取序列矩阵元素?

时间:2013-02-23 10:43:25

标签: matlab loops matrix

我有一个矩阵,如下所示:

A=[2;1;8;5;4;7]

现在我需要将矩阵A提取为两部分:

newpoint=[2];
rest=[1;8;5;4;7];

然后再次应用循环以将第二列提取为新点:

newpoint=[1];
rest=[2;8;5;4;7];

再次应用循环将第三列编号作为新点:

newpoint=[8];
rest=[2;1;5;4;7];

获取行序列中的数字,直到最后一行。 有人可以帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

可能会这样:

for i=1:length(A)    
    newpoint = A(i);
    if i==1
    rest = A(i+1:end);
    else
    if i== length(A);
    rest = A(1:end-1);
    else
    rest=A(1:i-1,i+1:end);

    ... stuff to do
end

答案 1 :(得分:1)

我会选择这样的事情:

for i = 1:size(A,1)
    newpoint = A(i,1)
    rest = A;
    rest(i) = [];
    %# use rest and newpoint
end

或者,如果您希望将所有restnewpoint保存在矩阵中:

newpoint = zeros(size(A,1),1);
rest = zeros(size(A,1)-1,size(A,1));
for i = 1:size(A,1)
    newpoint(i) = A(i,1);
    temp = A;
    temp(i) = [];
    rest(:,i) = temp;
end