How to efficiently encode two values as a unique entitiy

Dear all,
With respect to the above subject, I wonder if we can make the following code more efficient and compact (reduce the ifelse)..
A=3;
B=3;
C=[];
if A==1 && B==1
C=1;
elseif A==1 && B==2
C=2;
elseif A==1 && B==3
C=3;
elseif A==2 && B==1
C=4;
elseif A==2 && B==2
C=5;
elseif A==2 && B==3
C=6;
elseif A==3 && B==1
C=7;
elseif A==3 && B==2
C=8;
elseif A==3 && B==3
C=9;
end
In addition, I also wonder if we can scale it up for A=[2;2;3;1] and B= [1;1;3;1]
Thanks in advance

 채택된 답변

Stephen23
Stephen23 2018년 11월 23일
편집: Stephen23 2018년 11월 23일
M = [1,2,3;NaN,4,5;6,7,8];
C = M(A,B)
"In addition, I also wonder if we can scale it up for A=[2;2;3;1] and B= [1;1;3;1]"
arrayfun(@(a,b)M(a,b),A,B)

댓글 수: 1

Dear Stephen,
Thanks for the quick reply, your solution work like a charm

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

추가 답변 (1개)

Andrei Bobrov
Andrei Bobrov 2018년 11월 23일

1 개 추천

in your case:
>> A=[3;3;3;1]; B= [1;1;3;1];
f = @(A,B) 3*(A(:) - 1) + B(:);
C = f(A,B)
C =
7
7
9
1
>>

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

릴리스

R2017a

질문:

2018년 11월 23일

답변:

2018년 11월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by