Utilizing sqrt and square, "Check for incorrect argument data type or missing argument in call to function 'sqrt'"
15 次查看(过去 30 天)
显示 更早的评论
I am currently trying to create an expression
where Ix, and Iy are 100x100 uint8 matrixes
X = sqrt((Ix^2)+(Iy^2))
However I get "Check for incorrect argument data type or missing argument in call to function 'sqrt'"
I am wondering what is wrong here, additionally should I be using element power ".^" instead of "^"?
2 个评论
Stephen23
2021-9-30
The SQRT function is only defined for floating point types SINGLE and DOUBLE, not for integer types:
回答(1 个)
Rik
2021-9-30
编辑:Rik
2021-9-30
As Stephen mentioned, the sqrt function expects either single or double. So you will have to convert it to either of those data types.
Additionally, you probably want to use .^ as that would make the square element-wise. If you don't, it makes more sense you want sqrtm instead.
X = sqrt(double( (Ix.^2)+(Iy.^2) ));
You could also consider hypot to do this computation.
help hypot
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!