| Thread Closed |
Matlab problem - index out of bounds because numel(temp3)=0 |
Share Thread | Thread Tools |
| Jan29-07, 07:27 AM | #1 |
|
|
Matlab problem - index out of bounds because numel(temp3)=0
Hi,
I am using a Matlab program called f2matlab, which converts fortran 90 code to matlab code. But I keep on getting the following error: Attempted to access temp3(1); index out of bounds because numel(temp3)=0. Does anyone know what this error relates to? Thanks in advance. |
| Jan29-07, 07:33 AM | #2 |
|
|
Your variable temp3 is an array and as your program loops through the code it is finding that your array index is too large, i.e. you have declared the variable to be an array of length 2 and your code says to loop through it 3 or more times.
|
| Jan29-07, 07:42 AM | #3 |
|
|
Thanks.
It is strange because the program will work fine with some fortran code I have, but then not with other code. I just don't know why! Back to pulling my hair out... |
| Jan29-07, 07:42 AM | #4 |
|
|
Matlab problem - index out of bounds because numel(temp3)=0
Specifically, it's trying to access the first element of temp3. However, temp3 is empty - no elements, hence numel(temp3)=0.
Somewhere in your code, you probably want to initialise temp3 - even if it's with zeroes. |
| Jan29-07, 07:46 AM | #5 |
|
|
It is throwing up the error on this line of code:
temp3=temp3(temp3>temp4); temp2=temp3(1)-1; what does temp3(temp3>temp4) mean? Sorry about all these stupid questions
|
| Jan29-07, 08:14 AM | #6 |
|
|
It means to make a new temp3 which contains elements such that temp3>temp4, where temp3 (the array that will be overwritten by a new temp3) and temp4 are arrays.
|
| Jan29-07, 08:44 AM | #7 |
|
|
always remember tha tmatlab works with vectors/matrices in regards to its variables.
The equation that may be causing the error is temp2=temp3(1)-1 Separate that line into 2 lines...and see if it is...if it is then print temp3 (using fprintf or disp, both are your friends, fprintf>disp) |
| Jan29-07, 08:56 AM | #8 |
|
|
neurocomp2003 - yes I have tried this and it is temp2=temp3(1)-1 that is the problem.
print temp3 = 0. still trying to figure out why temp3 is zero.... back to the code
|
| Jan29-07, 09:03 AM | #9 |
|
|
Is that zero or empty?
If zero, there's no problem calling temp3(1). If empty, there is a problem. ps: try help keyboard for quick and convenient debugging needs. |
| Jan29-07, 09:13 AM | #10 |
|
|
temp3 = Empty matrix: 1-by-0
The code I am using has been tried and test by thousands of people - you can download from the matlab website. But for some reason I am getting this error with some of the code I am using. |
| Jan29-07, 09:14 AM | #11 |
|
|
|
| Jan29-07, 09:18 AM | #12 |
|
|
f2matlab http://www.mathworks.com/matlabcentr...bjectType=file
I have since emailed the author of the code and he has replied with a fix for the problem. but also said that my code contains structures which f2matlab cannot handle |
| Jan29-07, 09:40 AM | #13 |
|
|
OK - glad it's fixed - I also see from the comments that the f2matlab function isn't very robust.
|
| Jan26-10, 01:29 PM | #14 |
|
|
Hi,
I'm from brazil. I'm using a Matlab program called MMFM, which calculates the number of states in a Markov chain fluid. But I keep on getting the following error: ??? Attempted to access flambda(4); index out of bounds because numel(flambda)=3. Error in ==> MMFM>birthdeath at 89 lambda_i=flambda(i); Error in ==> MMFM at 48 [tjump, state] = birthdeath(npoints, fl, fm, A); My code is going in loop, how can I fix this? Thanks. The code: function [state,R]=MMFM(pkts,a,N,M,npoints) %Parâmetros: %pkts=Série de tráfego a ser modelada %a=proveniente da modelagem da função de autocovariância %N=número de fontes agregadas %npoints=tamanho da série sintética gerada %M=A cadeia de markov possui M+1 estados. Variando de zero a M. %m=média da série %v=variância da série %R=matriz de transições de estados %Inputs: %pkts,a,N,M,npoints %Outputs: %state, R m=mean(pkts); v=var(pkts); %Modela as probabilidades do tráfego através de uma distribuição binomial beta=a/(1+(N*((N*m)^2))/(M*N*v)); alfa=a-beta; A=(N*v)/(N*m)+(N*m)/M; %Inicializa a matriz de transições de estados R=zeros(M+1); %loop para cadeia de markov birth-death M=M+1; %O programa considera estados {1,2,...,M+1} for i=1:M if i<M R(i,i+1)=(M-i)*alfa; end if i>1 R(i,i-1)=(i-1)*beta; end R(i,i)=0; for j=1:M if abs(i-j)>1 R(i,j)=0; end end end %Nascimentos nasc=M*alfa; fl=[nasc:-alfa:alfa]; %Mortes morte=M*beta; fm=[beta:beta:morte]; [tjump, state] = birthdeath(npoints, fl, fm, A); eixo=[1:npoints]; plot(eixo,state); %%%plota mudanças de estados sem considerar tempos de %transições figure; [i,j]=hist(state,120); y=i/npoints; plot(j,y); hold on [p,k]=hist(pkts,120); yy=p/npoints; plot(k,yy,'r-'); media=mean(pkts); tamanho=length(pkts); poiss=poissrnd(media,tamanho,1); [pp,kk]=hist(poiss,120); yy=pp/npoints; plot(kk,yy,'y-'); legend('MMFM','Real','Poisson'); xlabel('Taxa de Chegadas (Pacotes/Segundo)'); ylabel('Probabilidade'); figure; plot(tjump,state); xlabel('Tempo(Segundos)'); ylabel('Taxa de Chegadas (Pacotes/Segundo)'); %Chama programa birthdeath function [tjump, state] = birthdeath(npoints, flambda, fmu,A) % BIRTHDEATH generate a trajectory of a birth-death process % %[tjump, state] = birthdeath(npoints,flambda,fmu) %Inputs: npoints - length of the trajectory %Outputs: tjump - jump times %state - states of the embedded Markov chain i=1; %initial value, start on level i tjump(1)=0; %start at time 0 state(1)=i; %at time 0: level i for k=2:npoints % compute the intensities lambda_i=flambda(i); mu_i=fmu(i); time=-log(rand)./(lambda_i+mu_i); % Inter-step times: % Exp(lambda_i+mu_i)-distributed if rand<=lambda_i./(lambda_i+mu_i) i=i+1; % birth else i=i-1; % death end %if state(k)=i; tjump(k)=time; end %for i tjump=cumsum(tjump); %cumulative jump times state=state-1; state=state*A; |
| Jan26-10, 01:57 PM | #15 |
|
Mentor
|
Added [ code] and [ /code] tags to format your code.
|
| Thread Closed |
| Thread Tools | |
Similar Threads for: Matlab problem - index out of bounds because numel(temp3)=0
|
||||
| Thread | Forum | Replies | ||
| problem in MatLab | Math & Science Software | 0 | ||
| [SOLVED] Another Index of Refraction Problem!!!!!!!!!!! HELP! PLEASE | Introductory Physics Homework | 16 | ||
| MATLAB index problem | Math & Science Software | 8 | ||
| Second opinion for an Index Problem | Set Theory, Logic, Probability, Statistics | 2 | ||
| Finding bounds of a centroid problem | Calculus & Beyond Homework | 2 | ||