0

10 x 3 の行列があり、1 から 10 までの反復を使用して、3 つの引数を期待する関数の引数として 10 行のそれぞれを使用したいと考えています。問題は、3 つの引数を期待する関数に各行ベクトルを直接渡すことができないことです。行列の行を関数で受け入れられる形式に変換するにはどうすればよいですか?

関数は次のとおりです。

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 は、行が Kc、T1、T2 になる必要がある 10 x 3 マトリックスです。ありがとう。

4

1 に答える 1

1

cell 配列に変換します。

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
于 2013-10-04T19:14:20.790 に答える