Index exceeds the number of array elements (0).

1 visualización (últimos 30 días)
BALPARTAP SINGH
BALPARTAP SINGH el 2 de Dic. de 2020
Comentada: KSSV el 2 de Dic. de 2020
prompt= 'Enter theta1 value';
A = input(prompt);
prompt = 'Enter phi1 value';
B = input(prompt);
prompt= 'Enter theta2 value';
A_ = input(prompt);
prompt = 'Enter phi2 value';
B_= input(prompt);
cos(C)= cos(A)*cos(A_)+ sin(A)*sin(A_)*cos(B-B_);
sin(C)= sqrt( 1- (cos(C))^2);
if A == (90)
disp('2D random assembly')
O= 1/180 ;
J = integral2(@(A_,B_) O*sin(C)*sin(A_),0,180,0,180);
else
disp('3D random assemby')
O= 1/360 ;
J = integral2(@(A_,B_) O*sin(C)*sin(A_),0,180,0,180);
end
I am getting error(Index exceeds the number of array elements (0) ) in 10th line. Please explain why I am getting this error?
  1 comentario
KSSV
KSSV el 2 de Dic. de 2020
cos(C)= cos(A)*cos(A_)+ sin(A)*sin(A_)*cos(B-B_);
The above line is not correct.

Iniciar sesión para comentar.

Respuesta aceptada

VBBV
VBBV el 2 de Dic. de 2020
Editada: VBBV el 2 de Dic. de 2020
%true
prompt= 'Enter theta1 value';
A = input(prompt);
prompt = 'Enter phi1 value';
B = input(prompt);
prompt= 'Enter theta2 value';
A_ = input(prompt);
prompt = 'Enter phi2 value';
B_= input(prompt);
coC= cos(A)*cos(A_)+ sin(A)*sin(A_)*cos(B-B_);
siC= sqrt( 1- (coC.^2));
if A == (90)
disp('2D random assembly')
O= 1/180 ;
J = integral2(@(A_,B_) O*siC.*sin(A_),0,180,0,180);
else
disp('3D random assemby')
O= 1/360 ;
J = integral2(@(A_,B_) O*siC.*sin(A_),0,180,0,180);
end
You are using parenthesis with undefined index on left side. Try above
  1 comentario
KSSV
KSSV el 2 de Dic. de 2020
You have to consider the angle units in the above.... I don't understand why people are answering the same answer, once it answered.

Iniciar sesión para comentar.

Más respuestas (1)

KSSV
KSSV el 2 de Dic. de 2020
As you are expecting the angle to be in degrees, you have to use sind, cosd. If you enter the angles in radians, then use sin, cos.
You need to use like this:
prompt= 'Enter theta1 value';
A = input(prompt);
prompt = 'Enter phi1 value';
B = input(prompt);
prompt= 'Enter theta2 value';
A_ = input(prompt);
prompt = 'Enter phi2 value';
B_= input(prompt);
cosC= cosd(A)*cosd(A_)+ sind(A)*sind(A_)*cosd(B-B_); % consider a different variable name cosC
sinC= sqrt( 1- (cosC)^2); % consider a different variable name sinC
if A == (90)
disp('2D random assembly')
O= 1/180 ;
J = integral2(@(A_,B_) O*sinC*sind(A_),0,180,0,180);
else
disp('3D random assemby')
O= 1/360 ;
J = integral2(@(A_,B_) O*sinC*sind(A_),0,180,0,180);
end

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by