2013-02-23 207 views
0

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

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

取行序列中的數字直到最後一行。 有人可以提供足夠的幫助。謝謝!

回答

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

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

+0

是的,你是對的,我的錯誤。 – sfotiadis 2013-02-23 21:32:11

1

我會去這樣的事情:

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