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

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

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!
perfect, thanks

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

도움말 센터File Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기

질문:

2017년 4월 24일

댓글:

2017년 4월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by