MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Andoni Mendialdua
on 22 Aug 2014

Hi all, I have the following code:

figure COPlin=Y./Yg; plot(AATnew,COPlin) axis([-10 80 0 1])

I want to make a curve, but Matlab is doing lot of lines between the points. What I want to obtain is a unique curve that put together all the points.

I would be glad if you could help me:)

*No products are associated with this question.*

Answer by Star Strider
on 22 Aug 2014

Accepted answer

I am not exactly certain what the problem is, but if my guess is correct, the `sort` function may be the solution:

AATnew = randi(90,20,1)-10; % ‘AATnew’ is a (20x1) array COPlin = rand(20,1); % ‘COPlin’ is a (20x1) array

[Ms,Mi] = sort(AATnew); % Sort ‘AATnew’, keeping indices

figure(1) plot(AATnew,COPlin,'-*') % Plot Original UNSORTED data grid

figure(2) plot(AATnew(Mi),COPlin(Mi),'-*') % Plot SORTED data grid

## 2 Comments

## Michael Haderlein (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/151928#comment_233073

what's the size of COPlin and AATew?

## Andrew Reibold (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/151928#comment_233099

Not enough information. You could model with a polynomial but we couldn't possibly guess at what order it needs to be. You could model with moving line average curve smoothing but we have no idea the size of these arrays or their features/values to know what would work. You could try interpolation but we again dont know enough about your problem to know what would be best.