Midpoint between 2 numbers in 2 columns in the same csv file

4 次查看(过去 30 天)
I'm working on a project where i need to find the midpoint between a minimum and maximum value to then plot a curve. i haver very limited experience in matlab and currently am having to use excel to calculate the midpoint between the 2 numbers as they are exported from software as 2 seperate csv files.
is there a way to either:
a) write the script to automatically find the midpoint between 2 numbers from 2 seperate csv files (they are the y-axis on a graph and the x-axis intervals stay the same)
or
b) the same as above but from 1 csv file?
obviously finding the point from the 2 seperate files will be easier but if needs be i can combine the 2, 2 column files in 1, 3 column file before improting to matlab.
any help would be greatly appreciated, as i said above this is slightly outside my knowledge of matlab, i am happy to provide an example of the csv files and what ive got my script to run so far

采纳的回答

Jon
Jon 2022-12-12
编辑:Jon 2022-12-12
% read in the data
dat1 = readmatrix("File1.csv");
dat2 = readmatrix("File2.csv");
% assume first column matches, and compute midpoints
mid = mean([dat1(:,2),dat2(:,2)],2) % compute mean of each row
mid = 4×1
15 25 35 45
  2 个评论
Image Analyst
Image Analyst 2022-12-12
Then
plot(dat1, 'r.-', 'LineWidth', 2);
grid on;
hold on;
plot(dat2, 'b.-', 'LineWidth', 2);
plot(mid, 'g.-', 'LineWidth', 2);
@Tom To learn other fundamental concepts, invest 2 hours of your time here:
If you have any more questions, then attach your data and code to read it in with the paperclip icon after you read this:
Jon
Jon 2022-12-12
@Image Analyst - thank you for the follow up regarding the OP's question about plotting, and the training suggestions. One small correction, since dat1 and dat2 also include the first column from the file, I think the plotting commands should be
plot(dat1(:,2), 'r.-', 'LineWidth', 2);
grid on;
hold on;
plot(dat2(:,2), 'b.-', 'LineWidth', 2);
plot(mid, 'g.-', 'LineWidth', 2);
or we could put all three curves into one array, and assuming the x axis is the same for all just grab it from one of the data arrays.
x = dat1(:,1);
Y = [dat1(:,2),dat2(:,2),mid];
plot(x,Y)
legend('File1','File2','Midpoint','Location','best')

请先登录,再进行评论。

更多回答(0 个)

类别

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

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by