HEEELP : Index in position 2 is invalid. Array indices must be positive integers or logical values. !!!! why???
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, this is my code as you can see;
while i wrote the FOR part, matlab gives me this error. PLEASE HELP ME
opticaxis=[];
center=(length(y))/2;
for i=1:length(lambda)
opticaxis(i,:)=E_z(:,center,i)'/(max(E_z(:,center,i)));
end
mesh(x/(1e-6),lambda/(1e-6),opticaxis)
view(2)
colormap jet
ax = gca;
ax.YDir = 'normal'
title('GRIN with Plane Wave')
xlabel('x(um)')
ylabel('\lambda(um)')
0 commentaires
Réponses (2)
Steven Lord
le 17 Jan 2020
center=(length(y))/2;
for i=1:length(lambda)
opticaxis(i,:)=E_z(:,center,i)'/(max(E_z(:,center,i)));
end
If y is a vector with an odd number of elements (as an example let's say y has 3 elements) you're asking for an element of E_z that doesn't exist (in the 3 element example, you're asking for elements in the 1.5th column of E_z.)
If y is not a vector, you probably shouldn't be using length. Use size and ask for the size of y in a specified dimension.
0 commentaires
AdamG2013468
le 17 Jan 2020
Your for loop index is:
for i = 0:length(lambda)
Within your for loop you are attempting to create a new variable "opticaxis". You cannot define the opticaxis(0,:) point during the first index of your for loop. Try replacing your starting index value with a 1 insted of 0 (example below). This may not solve your problem just yet, but should get you closer. Also, what is the value of length(lambda)?
for i = 1:length(lambda)
1 commentaire
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!