HEEELP : Index in position 2 is invalid. Array indices must be positive integers or logical values. !!!! why???
1 view (last 30 days)
Show older comments
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 Comments
Answers (2)
Steven Lord
on 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 Comments
AdamG2013468
on 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)
See Also
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!