我有一个矩阵,如下所示:
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];
取行序列中的数字,直到最后一行。有人可以帮忙吗。谢谢!
类似的事情可能会:
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
我会去做这样的事情:
for i = 1:size(A,1)
newpoint = A(i,1)
rest = A;
rest(i) = [];
%# use rest and newpoint
end
或者,如果您更喜欢将所有rest
and保存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