Undefined function 'cosd' for input arguments of type 'logical'
16 次查看(过去 30 天)
显示 更早的评论
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 个评论
John Chilleri
2017-4-24
编辑:John Chilleri
2017-4-24
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!
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Install Products 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!