我有一些復數的問題,我很少使用。我的問題是我有一個陣列,
cos^(-1)(x)其中的x值可以小于或大于|1|,從而得到一些復數,我需要具有最低實部的數字的索引。
資料可能看起來像
[0 0.37i, 0 0.18i, 0.2 0.0i, 0.3 0.0i, 0.4 0.0i]
所以我需要索引 0.2 0.0i
到目前為止我嘗試過的是
[val_min_x,idx_min_x]=min(real(x)>0))
因為我需要實部的最小值大于零。但這行不通,我猜是因為real(x>0)給出了真偽。然后取其中的最小值只給出第一個零的索引。
有什么建議可以在沒有 if 陳述句的情況下解決這個問題?
uj5u.com熱心網友回復:
首先將所有 0 轉換為 1,以便 min() 找不到它們(通過加 1)。然后保持其他所有內容不變(通過添加 0)。為簡潔起見,布爾技巧會將所有內容放在一行中,
謝謝@CG
% example input
A=[0 0.37i, 0 0.18i, 0.2 0.0i, 0.3 0.0i, 0.4 0.0i]
% leveraging maximum cos(x)<=1 and boolean true being cast to 1
[~, idx] = min(real(A) (real(A)==0))
A =
Columns 1 through 3
0.0000 0.3700i 0.0000 0.1800i 0.2000 0.0000i
Columns 4 through 5
0.3000 0.0000i 0.4000 0.0000i
idx =
3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363971.html
下一篇:神經網路的成本函式計算
