2013-10-04 59 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

相关问题