2013-10-04 88 views
0

我有一個10 x 3的矩陣,並希望使用10行中的每一個作爲函數的參數,期望使用從1到10迭代的3個參數。 問題是我無法將每個行向量直接傳遞給期望3個參數的函數。如何將矩陣行轉換爲我的函數可接受的格式?如何將矩陣向量傳遞到matlab中的函數參數

下面是函數:

XXX = obj(Kc, T1, T2); 

呼叫號碼:

for i = 1:100        
    pop(i,1) = 50 - rand*(50-1); 
    pop(i,2) = 1 - rand*(1-0.1); 
    pop(i,3) = 0.2 - rand*(0.2-0.01); 
    Kc(i) = pop(i,1); 
    T1(i) = pop(i,2); 
    T2(i) = pop(i,3); 

end 

for j = 1:10 
    kk = randperm(100); 
    Tour1 = pop(kk(1:10),:); 
    ZET(j) = obj(Tour1(j,:)); 

end 

Tour1是10×3矩陣,它的行需要變得的Kc,T1,T2。 謝謝。

+2

爲什麼不'ZET(J)= OBJ(Tour1(j,1),Tour1(J,2),Tour1(J,3));'? – darthbith

回答

1

轉換爲單元陣列:

for j = 1:10 
    kk = randperm(100); 
    Tour1 = pop(kk(1:10),:); 
    temp = mat2cell(Tour1(j,:),1,ones(1,numel(Tour1(j,:)))) 
    ZET(j) = obj(temp{:}); 
end 
+0

謝謝你們,你太善良了。 – dee

相關問題