Variable lamb1 appears to change size on every loop iteration

maximag=max(imag(ee));
lamb1(i1,j1)=maximag;
hello sir i m getting warning as lamb1 changes the size in every loop,because of this warning my program became very slow,can you please help me out.

2 Comments

Are you appending maximag to lamb1 inside a loop? Its not very clear from the example here.
ee = eig(AA,BB);
maximag=max(imag(ee));
lamb1(j1,i1)=maximag;
switch ivary
case 1
str = 'b-';
case 2
str = 'r-.';
case 3
str = 'k:';
[RA,DA]=meshgrid(Rac,Dac);
contour(RA,DA,lamb1',[0,0],str)
hold on
set(gca,'ytick','log')
set(gca,'xtick',0:5000:35000)
xlabel('Ra')
ylabel('log_10 Da')
% grid on

Sign in to comment.

Answers (2)

You have to initialize that variable before using it in a llop to save/ fill the values.
lamb1 = zeros(m,n) ; % specify your dimensions

3 Comments

You need not index lamb1. Simply the below should work.
ee = eig(AA,BB);
maximag=max(imag(ee));
lamb1 = maximag;
switch ivary
case 1
str = 'b-';
case 2
str = 'r-.';
case 3
str = 'k:';
[RA,DA]=meshgrid(Rac,Dac);
contour(RA,DA,lamb1',[0,0],str)
hold on
set(gca,'ytick','log')
set(gca,'xtick',0:5000:35000)
xlabel('Ra')
ylabel('log_10 Da')
% grid on
thank you so much sir,but when i m not definig index for lamb1 it is showing
Error using contour (line 48)
Z must be at least a 2x2 matrix.
contour(RA,ALPHA,lamb1',[0,0],str)
Show us your complete code...If j1, i1 are your idnices then you have to preallocate/ initialize lamb1.

Sign in to comment.

This article on Preallocation of arrays should be helpful

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Asked:

on 19 Jul 2021

Commented:

on 19 Jul 2021

Community Treasure Hunt

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

Start Hunting!