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

6 次查看(过去 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.

请先登录,再进行评论。

更多回答(1 个)

Palguna Gopireddy
Palguna Gopireddy 2021-7-30
Thanks for the help.

标签

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by