Utilizing sqrt and square, "Check for incorrect argument data type or missing argument in call to function 'sqrt'"
18 ビュー (過去 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!