Undefined function 'cosd' for input arguments of type 'logical'

4 vues (au cours des 30 derniers jours)
Franklyn Dunbar
Franklyn Dunbar le 24 Avr 2017
Commenté : Franklyn Dunbar le 24 Avr 2017
The function should take floating point values and output disk width, but I am getting the error "Undefined function 'cosd' for input arguments of type 'logical'"
.
function R_disk = disk_rad(A)
% function computes radius of respective disk as a function of the points
% Longitude
gridspc = .1;
R_earth = 6371; %radius of the earth in Km
dist_lat = gridspc * R_earth;
dist_lon = R_earth*gridspc*cosd(A);
A_grid = dist_lat*dist_lon;
R_disk = sqrt(A_grid/pi)/110.946;
end
  2 commentaires
John Chilleri
John Chilleri le 24 Avr 2017
Modifié(e) : John Chilleri le 24 Avr 2017
Hello,
This is because your input A is a logical value rather than a double.
For example:
>> A = 1 == 1
A =
1
>> cosd(A)
Undefined function 'cosd' for input arguments of type 'logical'.
>> A = 1
A =
1
>> cosd(A)
ans =
0.999847695156391
You can get around this by putting an
A = double(A);
or
cosd(double(A))
Although A may be logical due to a bug in your earlier code (I would check if I was you).
Hope this helps!
Franklyn Dunbar
Franklyn Dunbar le 24 Avr 2017
perfect, thanks

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Install Products 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!

Translated by