【问题标题】:How can I pass a matrix vector into a function argument in matlab如何将矩阵向量传递给matlab中的函数参数
【发布时间】:2013-10-04 19:04:20
【问题描述】:

我有一个 10 x 3 矩阵,并希望使用 10 行中的每一行作为函数的参数,该函数需要 3 个参数,使用从 1 到 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 是 10 x 3 矩阵,其行需要变为 Kc、T1、T2。 谢谢。

【问题讨论】:

  • 为什么不Zet(j) = obj(Tour1(j,1),Tour1(j,2),Tour1(j,3));

标签: matlab matrix evolutionary-algorithm


【解决方案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

【讨论】:

  • 谢谢大家,你们太客气了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
相关资源
最近更新 更多