Plotting fixed X data against multiple Y data in matlab

17 Ansichten (letzte 30 Tage)
Richard
Richard am 22 Dez. 2022
Kommentiert: Richard am 23 Dez. 2022
Hello I need help with this.I am new to matlab.
I have an excel file with X DATA in first column and 44 Y DATA in adjecent columns and the average of all the ys in a last column.
I want to make a scatter plot for the fixed X data against all the 44 y data and also make a line graph of the X against the average of the Y all on a single graph.

Akzeptierte Antwort

Cameron
Cameron am 22 Dez. 2022
Bearbeitet: Cameron am 23 Dez. 2022
Thank you for the clarification. There may be too many plots for the data to look nice, but the way I would do what you have described is as follows:
[file,path] = uigetfile('*.*'); %select the file
cd(path) %change directories
fileData = readmatrix(file); %read the file
xdata = fileData(:,1); %value for data in the first column. I assumed there were 44 data points for X
hold on %hold onto the plot so it doesn't overwrite it
for col = 2:size(fileData,2) - 1 %loop through all columns of data minus the y average
ydata = fileData(:,col); %value for data in the looped column.
plot(xdata,ydata,'o') %plot the first and looped column
end
y_avg = fileData(:,end); %last column of data
plot(xdata,y_avg,'-') %plot the x vs. the average y data
hold off %turn the hold off
  3 Kommentare
Cameron
Cameron am 23 Dez. 2022
I've updated it to fit your requirements. Try it now.
Richard
Richard am 23 Dez. 2022
This one worked perfectly. Thank you very much.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Cameron
Cameron am 22 Dez. 2022
[file,path] = uigetfile('*.*'); %select the file
cd(path) %change directories
fileData = readmatrix(file); %read the file
xdata = fileData(:,1); %value for data in the first column. I assumed there were 44 data points for X
ydata = fileData(:,2); %value for data in the second column.
avgy = mean(ydata); %average of all the y data points
plot(xdata,ydata,'o') %plot the first and second column
hold on %hold onto the plot so it doesn't overwrite it
plot(xdata,ones(length(xdata),1)*avgy,'-') %plot the x vs. the average y data
hold off %turn the hold off
  1 Kommentar
Richard
Richard am 22 Dez. 2022
Thank you. This made the plot but not all the plots. Maybe my question wasn't clear.
I have say 250 data points in first column (x) and 250 data points in adjacent 44 columns(y) and 250 data points in the 46th column (y_average). I want to do a scatter plot for the X and the ys, and a line plot for the x and y_average.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu App Building finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by