plotting on curve given only x value in a loop

1 回表示 (過去 30 日間)
Benjamin
Benjamin 2019 年 3 月 18 日
回答済み: Star Strider 2019 年 3 月 18 日
I have the following code:
for i=1:1:10
plot(data{1, i}(:,2),data{1, i}(:,4));
C = data{1, i}(:,4)./data{1, i}(:,2);
vint = pi*sqrt(2)/3 * cumtrapz(data{1, i}(:,2), data{1, i}(:,4)./data{1, i}(:,2));
X_M(i) = interp1(vint, data{1, i}(:,2), 1);
X_M_temp = interp1(vint, data{1, i}(:,2), 1);
xlim([1 2]);
grid on;
hold on;
plot(X_M_temp,'o')
end
It basically computes an integral and X_M_temp is where the integral is equal to 1. You can see this is in a loop 10 times. If I have this X_M_temp, which is an x value of the plot, is there a way I can plot a symbol for each line (each time through the loop) where X_M_temp is the x-value, and the y-value should be wherever that falls on the current line on the plot? Note that X_M(i) stores the whole array, but I was having less luck using this, so I created X_M_temp which just holds the current value. However, I can't seem to get them to plot X_M_temp (the x-value) with whatever y-value that would correspond to on the line.
Note that
data{1, i}(:,2)
corresponds to the X-values. Could I interpolate X_M on here, and find the interpolated y-value (which would be in the
data{1, i}(:,4)
column)? X_M won't fall on an exact point in the x-data, so maybe I should interpolate the y-values? Maybe this way is overkill? Is there a way I can plot X_M for each line, such that the y-value is just where X_M crosses the line?

採用された回答

Star Strider
Star Strider 2019 年 3 月 18 日

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGraphics Performance についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by