"plus/minus" sign operator
10 views (last 30 days)
Show older comments
Hi
I have a row matrix which is like n=[x,y,z] I need to consider plus and minus signs at the same time and get a permutations of them. In conclusion I need that solutions
n=[x,y,z]
n=[-x,y,z]
n=[x,-y,z]
n=[x,y,-z]
n=[-x,-y,z]
n=[-x,y,-z]
n=[x,-y,-z]
n=[-x,-y,-z]
0 Comments
Accepted Answer
Iain
on 17 May 2013
It depends what you want to do with it.
M = [1 1 1; 1 1 -1; 1 -1 1; 1 -1 -1; -1 1 1; -1 1 -1; -1 -1 1; -1 -1 -1];
Out = (M * Row')' ;
Each row of Out is what you want.
You might want to programatically generate M if you have more columns on your row.
2 Comments
More Answers (1)
C.J. Harris
on 17 May 2013
Not exactly elegant, but it works:
A = [1 2 3];
B = (dec2bin(0:2^length(A)-1) - '0');
C = sum(B .* repmat(A, 2^length(A), 1), length(A)) + sum(~B .* repmat(-A, 2^length(A), 1), length(A));
0 Comments
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!