How to approximate a curve in a matrix?

3 次查看(过去 30 天)
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.

采纳的回答

Ishaan Mehta
Ishaan Mehta 2022-6-25
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Line Plots 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by