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

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Andoni Mendialdua on 22 Aug 2014 at 11:18

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 at 14:08

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

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

what's the size of COPlin and AATew?

Direct link to this comment:http://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.