Dear All
I have a matrix of three column as below like the file provided, I would like to find the values from o or p columns which is the closest to q, I have written this code:
M=abs(o - q);
N=abs(p - q);
difference =[M N];
[~,ii] = min(difference,[],2);
if ii == 1
Result = o
else
Result = p
end
but it just return the p column to me, I am really confused about the results. I really appreciate your helps
Best Nima

댓글 수: 3

Michal
Michal 2017년 11월 14일
Add some test case data to your code and expected result.
Stephen23
Stephen23 2017년 11월 14일
편집: Stephen23 2017년 11월 14일
This conditional statement for if
if ii == 1
will only be true if all values of ii are equal to one, and by the way that you defined ii this is clearly not the case. That line does not operate element-wise on the elements of ii. You cannot use if to distinguish between different array values and cause different actions to happen without using a loop and indexing.
Even better would be to learn how to write vectorized code, in which case the loop is not required. These basic and important concepts for using MATLAB are explained in the Getting Started tutorials, which are highly recommended for all beginners:
What output do you expect to get?
Nima
Nima 2017년 11월 14일
I expect this:

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

 채택된 답변

Oscar Briones
Oscar Briones 2017년 11월 14일

1 개 추천

hola trabajé un poco en tu pregunta y lo solucioné de la siguiente manera,
%%Import the data
datos=xlsread('test1.xls','Sheet1','A2:D12');
%%Create output variable
q = datos(:,1);
o = datos(:,3);
p = datos(:,4);
M = abs (o - q);
N = abs (p - q);
R=M>N
result=o.*(1-R)+p.*(R)
saludos desde chile

댓글 수: 1

Nima
Nima 2017년 11월 14일
muchas gracias Oscar
lógica fantástica, realmente me gustó, mucho mejor que perder el tiempo en los enlaces provistos por las otras respuestas
lo siento, mi español es realmente malo

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

추가 답변 (0개)

카테고리

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

질문:

2017년 11월 14일

댓글:

2017년 11월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by