Function for Script. I need to write a Function that selects the positive and negative numbers from a matrix. How to write this?

 采纳的回答

function [p,n]=splitsigns(x)
% return positive/negative values from array x in vectors p/n, respectively
p=x(x>0);
n=x(x<0);
This one excludes 0; pick where you want those if do...

7 个评论

But, if I have a matrix with positive numbers and have to change it to negative and vice-versa?
Simple enough but need a better definition of what you need/want...
x=-x; % switch all signs
x=abs(x); % all negative are now positive
Many other choices as well, depending...
And if i switch the input and output values, like this:
function (x)=splitsigns(p,n)
x=p(p>=0)
x=n(x<0)
Then the second assignment overwrites the first and the result of the second yields an empty set, irregardless since you guaranteed no negatives are in x with the first.
Might as well as written
function (x)=splitsigns(p,n)
x=[];
which, overall, is pretty useless... :)
Ok! So, like you have writen in the first one, just to have no doubts in this.
I've the declaration of the function, with the: Output Arg (n,p) and the Input Arg (x)
And the Variables of the funtion are: p=x(x>0); n=x(x<0);
Am I thinking correctly?
Read the help files on functions, but in general yes. Other than I'd say that p=x(x>0); and n=x(x<0); are expressions, not variables. There are no strictly local variables in those functions, only the input/output arguments (which are, of course variables just not local).

请先登录,再进行评论。

更多回答(1 个)

a = 0.5 - rand(3,3);
%Positive numbers
a(a>=0)
% negative numbers
a(a>0)

1 个评论

Thank You!
But, if I have a matrix with positive numbers and have to change it to negative and vice-versa?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Annotations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by