Undefined function 'cosd' for input arguments of type 'logical'
16 views (last 30 days)
Show older comments
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 Comments
John Chilleri
on 24 Apr 2017
Edited: John Chilleri
on 24 Apr 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!
Answers (0)
See Also
Categories
Find more on Install Products 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!