How to approximate a curve in a matrix?

8 visualizzazioni (ultimi 30 giorni)
Hello everyone,
I want to find a curve which fits in the following way for the whole width of the matrix but I really have no idea of how to do this. I tried to rotate the matrix by 180 degree and apply a mask but it is just not working. You can find a part of the matrix attached to this post.

Risposta accettata

Ishaan Mehta
Ishaan Mehta il 25 Giu 2022
Hi Glypton
I understand that you want to plot the maximum values of each row in the matrix, over a plot of the matrix itself.
This can be done using MATLAB's plot function and max function.
Here is a code snippet for the same, applied on the matrix file you have attached.
plot(matrix);
maxVals = max(matrix, [], 2);
hold on
plot(maxVals, "r", "LineWidth",2);
hold off
This is the output plot generated:
If you wish to fit a smoother curve as an approximation for the data, you can use the smooth function.
plot(matrix);
maxVals = max(matrix, [], 2);
smoothMaxVals = smooth(double(maxVals));
hold on
plot(smoothMaxVals, "r", "LineWidth",2);
hold off
This is the output plot generated:
Hope it helps
Ishaan

Più risposte (0)

Categorie

Scopri di più su Line Plots in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by