Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

Don't understand indexing statement from compiler

2 Ansichten (letzte 30 Tage)
DJ V
DJ V am 2 Dez. 2016
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
MY code is:
function mbd = spherical_mirror_aberr(fn,D )
%SPHERICAL_MIRROR_ABERR Summary of this function goes here
% Detailed explanation goes here
delta_x = 0.01;
Num_x=D/2/delta_x;
f = fn * D;
delta_theta = asin(delta_x/(2*f));
D_theta = asin(D/2/(2*f));
theta(0: delta_theta:D_theta);
Mult = 8*delta_x/D^2;
mbd =Mult*sum( 2*f*tan(2*(0:delta_theta:Dtheta))(1/cos(0:delta_theta:D_theta) -1));
end
The compiler is giving me a warning: "indexing must appear last in an index expression" What does this mean that I need to do. It affects the "mbd" variable equation.
  4 Kommentare
DJ V
DJ V am 2 Dez. 2016
Bearbeitet: DJ V am 2 Dez. 2016
I simplified the code considerably just to begin to find the error:
Now it produces:
Error in spherical_mirror_aberr (line 10)
mbd =Mult*sum( (0:delatax:D/2));
Adam
Adam am 2 Dez. 2016
Errors come with an error message, not just a line number usually.

Antworten (2)

Adam
Adam am 2 Dez. 2016
Bearbeitet: Adam am 2 Dez. 2016
sum( ... )( ... )
is not valid syntax in Matlab.
You can't chain together parenthesis is what that error is essentially sayiing. I don't really know what you are trying to do in the expression. Maybe you are just missing a * from between the ) and the (
  4 Kommentare
Guillaume
Guillaume am 2 Dez. 2016
Well, you're missing the * between 2*f*tan(2*theta) and (1/cos(theta)-1)
Image Analyst
Image Analyst am 2 Dez. 2016
Since your theta is actually an array of theta's, you'll need dot slash instead of slash: 1./cos(). You'll also need a dot * instead of * almost everywhere, for example tan() .* (1./cos)

DJ V
DJ V am 2 Dez. 2016
BUt in the code as written now there is no multiplication or division,and it still won't work.

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by