如何提取序列矩阵元素?

问题描述:

我具有矩阵如下面的:如何提取序列矩阵元素?

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

现在我需要矩阵A提取到2份:

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 
+0

您正在混合matlab语法和其他语言的语法! Matlab使用'()'来访问向量和矩阵的元素,而不是'[]'。 – ThijsW 2013-02-23 14:21:32

+0

是的,你是对的,我的错误。 – sfotiadis 2013-02-23 21:32:11

我会去这样的事情:

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

或者如果你喜欢保存所有restnewpoint S IN矩阵:

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