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

조회 수: 5 (최근 30일)
Tom
Tom 2022년 12월 12일
댓글: Jon 2022년 12월 12일
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에서 Matrices and Arrays에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by