MATLAB消除了循环

时间:2015-06-02 23:19:40

标签: matlab for-loop

没有for循环可以执行以下操作吗?

param1_vary = [-10:5:10]
[r,c] = size(param1_vary)
for i = 1:length(param1_vary)
     new_parms(N,:) = ones(N,c).*param1_vary(i)
end

1 个答案:

答案 0 :(得分:2)

好的,我有两种解释方法:

  1. 您想要变量size(new_parms) = [c, N, c],其中new_parms(1, :, :) = param_vary(1)等等,如果您要使用ndgrid

    param1_vary = [-10:5:10];
    c = length(param1_vary);
    N = 50;
    
    [new_parms, ~, ~] = ndgrid(param1_vary, ones(N, 1), ones(c,1));
    
  2. 您想要一个变量size(new_parms) = [N, c],其中new_parms = ones(N, c) * param_vary(1) * param_vary(2) * ...如果是这种情况,您需要prod函数

    param1_vary = [-10:5:10];
    c = length(param1_vary);
    N = 50;
    new_parms = ones(N, c) * prod(param1_vary);
    
  3. 如果这些都不正确,你需要澄清你的问题。