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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Antworten (2)

KSSV
KSSV am 19 Jul. 2021
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 Kommentare

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.

Melden Sie sich an, um zu kommentieren.

Smitesh Patil
Smitesh Patil am 19 Jul. 2021

0 Stimmen

This article on Preallocation of arrays should be helpful

Kategorien

Gefragt:

am 19 Jul. 2021

Kommentiert:

am 19 Jul. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by