【问题标题】:Execute a for loop for certain integers and store the values for each iteration对某些整数执行 for 循环并存储每次迭代的值
【发布时间】:2015-06-28 16:53:12
【问题描述】:

我必须为不同的整数执行一个 for 循环,并将每个循环的值存储在一个矩阵中。如何在 MATLAB 中执行此操作? 例如。我必须为值运行 for 循环

for i=36,48,72,120
end

如果每个循环都给出一个 1×36 矩阵作为输出,我必须得到一个 4×36 矩阵。那是针对 i 的每个值。

【问题讨论】:

  • 你应该展示你尝试过的和没有成功的。

标签: matlab matrix


【解决方案1】:

将整数存储在一个向量中并遍历该向量:

values = [36,48,72,120];

num = numel(values);

per_iteration_size = 36;
result = zeros(num, per_iteration_size);

for k=1:num
    % store the "results" in the result vector
    % in this example, we just store [values(k), values(k), ...]
    result(k,:) = values(k)*ones(per_iteration_size,1);
end

根据每次循环迭代发生的情况,这通常可以在完全不使用任何循环的情况下完成。这称为vectorization,通常可以显着缩短处理时间。

【讨论】:

    最近更新 更多