MATLAB Answers

baby

Help me about looping in matlab

Asked by baby
on 19 Jan 2013
Accepted Answer by Matt J

hello all,,

please help me to solving my problems,,

i've some problem in matlab's code especially in looping

my example like this ,,

i've two examples of data

First | Second 
8	| 9
7       | 8

New data : (6 6)

and then i wanna insert that data into a formula and that data would be like this

x = (First Data - New Data(1))² + (Second Data - New Data(2))²

Example :

x1 = (8 - 6)² + (9 - 6)²;
x2 = (7 - 6)² + (8 - 6)²;

but i'm so confused about looping in matlab.

I don't know how to convert that formula into matlab's code.

Can someone help me please?

this is my code

%----------I N P U T----------------------
a= input ('Input Number of Data :');
for c=1:a
    int2 = ['Input The First Score - ',num2str(c),' :'];
    int3 = ['Input The Second Score - ',num2str(c),' :'];
    b{c,1} = input(int2);  
    b{c,2} = input(int3);
end;
d = cell2mat(b);
for i=1:c
      for j=1:2
          x(i,j)=??????????????
      end
end
disp(x)

Please help me :'(

  0 Comments

Tags

Products

No products are associated with this question.

1 Answer

Matt J
Answer by Matt J
on 19 Jan 2013
 Accepted answer

No need to use cells for b, and you should pre-allocate it as well:

    b=zeros(a,2); %pre-allocate!!
    for c=1:a
        int2 = ['Input The First Score - ',num2str(c),' :'];
        int3 = ['Input The Second Score - ',num2str(c),' :'];
        b(c,1) = input(int2);  
        b(c,2) = input(int3);
    end;

There's also no need to use a loop to compute x. You can do it in one line as follows

x = ( b(:,1) - NewData(1)).^2 + (b(:,2) - NewData(2)).^2;

  4 Comments

Matt J
on 19 Jan 2013
 [~,r]=sort(First+Second,'descend');
 Rank(r)=1:a;
baby
on 19 Jan 2013

sorry,,

i don't understand with ur code above

can u explain me what's mean "First+Second" and 'Descend'?

Matt J
on 19 Jan 2013

Explain "the total of the lowest score"


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today