I want to restrict the output of the arc cosine to be in the range [-1,1], but I want to know if there is built-in Matlab function for this task and if it is possible for example merge @max & @min simultaneoulsy in the function bsxfun to achieve this task.

 採用された回答

Jos (10584)
Jos (10584) 2016 年 3 月 3 日

0 投票

I do not see why you need bsxfun for this. If X is your signal, this statement restricts X between -1 and 1
X = [0.5 1 2 -2 -1 -0.5 0]
OUT = min(max(X,-1),1)
You can create an (anonymous) function for this, if you need it a lot.
minmax = @(x,a,b) max(min(x,a),b) % restricts input X between a and b

1 件のコメント

Nishantha Randunu
Nishantha Randunu 2021 年 3 月 3 日
anoymous function should be
minmax = @(x,a,b) min(max(x,a),b) % restricts input X between a and b

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 3 月 3 日

0 投票

min(max(x, -1), 1)

2 件のコメント

Susan Arnold
Susan Arnold 2016 年 3 月 3 日
編集済み: Susan Arnold 2016 年 3 月 3 日
What if I have two matrices which have the same size (let's say 1000 * 3), but I want for example matrix A has the same range of matrix B. What should I do to achieve this, could you please further help ?
Note: Both of these matrices have been generated randomely !!!
Jos (10584)
Jos (10584) 2016 年 3 月 4 日
Simply replace -1 and 1 by the minimum and maximum of B
... max(A,min(B(:))) ...

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeError Handling についてさらに検索

製品

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by