필터 지우기
필터 지우기

"plus/minus" sign operator

조회 수: 9 (최근 30일)
frwmetric
frwmetric 2013년 5월 17일
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]

채택된 답변

Iain
Iain 2013년 5월 17일
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
Iman Ansari
Iman Ansari 2013년 5월 17일
[a b c]=meshgrid([-1 1]);
M=[a(:) b(:) c(:)];
frwmetric
frwmetric 2013년 5월 17일
thank you...

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

C.J. Harris
C.J. Harris 2013년 5월 17일
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));

카테고리

Help CenterFile Exchange에서 Equations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by