MATLAB Answers

what is difference between C=+A, C=A, C=unary(A)? All three provide same assignment of matrix A to C

1 ビュー (過去 30 日間)
Palguna Gopireddy
Palguna Gopireddy 2021 年 7 月 27 日
回答済み: Palguna Gopireddy 2021 年 7 月 30 日
I cant understand the difference between C=+A, C=A, C=unary(A)?
All three provide same assignment of matrix A to C. Is there any difference among them

採用された回答

Chunru
Chunru 2021 年 7 月 27 日
編集済み: Chunru 2021 年 7 月 29 日
C=+A;
C = uplus(A) is an alternate way to execute +A, but is rarely umeased. It enables operator overloading for classes.
So depending on class of A, +A or uplus(A) may have different meaning.
C = A; This is just an assignment.
[Update based on comments below]
For assignment:
  • C = A; This is assiment only. MATLAB will do a lazy copying (pointer to A) and only do the real data copying when C is changed later.
  • C = +A or C=uplus(A); +A and uplus(A) is the expression or function that involves A. The meaning of + and uplus is class dependent. The expression and function need to be evaluated first before assignment. The evaluation results is assigned to C (data copying is necessary).
The meaning of +/upluse:
  • For numerical data types like double/single/etc, this will have no effect of the results.
  • For logical and char, +/upluse has the effect of operator overloading. The result is of numerical data type double.
As function input arguments:
  • +A and uplus(A) is the expression, as in table(+A)
In addition, it is possible (but rarely) for user to do the operater overloading of +/uplus.
  5 件のコメント
Steven Lord
Steven Lord 2021 年 7 月 28 日
That's true, I'd forgotten about char. I guess I was a little more tired than I thought when I wrote that response.

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

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by