# Why the matlab editor (Code Analyser) is not warning about changing size by a variable within a loop

1 view (last 30 days)

Show older comments

In the 2nd example of the following for-loop the variable A definitely changes its size as it does in the 1st example. However, in one case the editor throws a warning message and in the second case it does not. Why?

A = [];

N = 100;

% 1st example

for k = 1:N

M = 10;

for n = M:-1:1

B(n) = n;

end

A = [A,B]; % Warning: Variable appears to change size on every loop iteration

end

% 2nd example

for k = 1:N

M = 10;

for n = M:-1:1

B(n) = n;

end

A(end+1:end+length(B)) = B; % No warning here and faster

end

If I write in simpler way

A = 1; % or A=[];

for k = 1:N

A(end+1:end+2) = [1,1]; % No warning.

end

And, by the way

A = 1; % or A = [];

for k = 1:N

A = [A,[]]; % Warning: Variable 'A' appears to change size on every loop iteration. Consider preallocating for speed

end

That means Code Analyser is not analysing much here

### Accepted Answer

Cris LaPierre
on 30 Dec 2021

### More Answers (0)

### See Also

### Products

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!