相关疑难解决方法(0)

变量似乎在每次循环迭代时改变大小 - 什么?

在编写以下Matlab代码时:

for ii=1:n
    x(ii) = foo( ii ); % foo is some function of ii that cannot be vectorized.
end
Run Code Online (Sandbox Code Playgroud)

我得到以下m-lint警告:

变量x似乎在每次循环迭代时改变大小

我的问题:

  1. 这个警告意味着什么?
  2. 为什么每次迭代都会改变变量大小是件坏事?
  3. 怎样才能解决这个问题?

这个问题是不能重复的这一个,因为它与预分配的更一般的问题,而是它的一个特定实例涉及.

iteration matlab memory-management

9
推荐指数
3
解决办法
2万
查看次数

考虑预先分配速度

我正在做以下事情

for i = 1:m,
    index = 0;
    for j = 1:n,
        index = index+values(i,j)*2^(j-1);
        if (j==1)
            symbol_chip = chip_values(index+1,:);
        else
            symbol_chip = [symbol_chip chip_values(index+1,:)];
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

它告诉我以下内容:

symbol_chip可能会在循环中成长.考虑预先分配速度.

有任何想法吗?

matlab memory-management

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

matlab ×2

memory-management ×2

iteration ×1