Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is the uplus function useful?

Tags:

matlab

This is a rhetorical question about the uplus function in MATLAB, or its corresponding operator, the unary plus +.

Is there a case where this operator is useful? Even better, is there a case where this operator is necessary?

like image 507
Ratbert Avatar asked Feb 27 '15 14:02

Ratbert


2 Answers

It is not necessary, a language without a unary plus does not allow to write +1. Obviously you could also write 1 but when importing data which always writes the + or - it's very nice to have.

Searching some source codes, I found a curious use of +

A=+A

which replaced the code:

if ~isnumeric(A)
    A=double(A);
end

It casts chars and logicals to double, but all numeric data types remain untouched.

like image 152
Daniel Avatar answered Oct 12 '22 12:10

Daniel


It can be useful when defining new numeric types.

Suppose you define quaternion and overload uplus:

classdef quaternion
    ...
end

Then in your code you can write:

x = quaternion(...);
y = [+x, -x];
z = +quaternion.Inf;
t = -quaternion.Inf;

If you don't you cannot have same syntax as for other numeric.

PS: To the question "is it useful" (in the sence mandatory for some syntaxes) ... well I can't find any reason ... but sometimes writting '+x' make things clearer when reading back the code.

like image 34
CitizenInsane Avatar answered Oct 12 '22 14:10

CitizenInsane