0

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

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];

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

4

2 回答 2

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
于 2013-02-23T10:49:00.533 回答
1

我会去做这样的事情:

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

或者,如果您更喜欢将所有restand保存newpoint在矩阵中:

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
于 2013-02-23T14:17:42.300 回答