k=1:0.5:10;
a=1:0.5:5;
[K, A] = ndgrid(k, a);
Numerator = num2cell(K(:));
nusz = size(Numerator);
Denominator = num2cell( [ones(nusz), A(:), zeros(nusz)], 2);
tfs = tf(Numerator, Denominator);
Now at this point you have two choices:
1)
This is not the same as your original code: it produces an array of plots. To be honest, it is not understandable even in full screen mode -- it just looks like a series of straight lines across the screen. However, the execution time is not so bad considering.
2)
for K = 1 : 171; bode(tfs(K)); hold on; end; grid on
This is the same as your original code. It would create a single pair of plots with 171 lines each (but most of which overlay each other.) This takes quite a while to execute.
The drawing of the plots takes much much longer than the creation of the transfer functions -- to the point where it is hardly even worth bothering to vectorize the creation of the transfer functions considering the loss in clarity about what is being plotted.
Best Answer