Clear Filters
Clear Filters

How to get multiple slopes from a file.

6 views (last 30 days)
I have files, where the first column represent as x axis and the other columns are for y axis. I can get different XY curves by plotting them. For example, by plotting the first column with the second column I get one graph, again by plotting the first column with the third column I get another curve and so on. I need to calculated the slopes of each curves. Until now I have the programming to calculate the slop for one curve and to get all of the slopes together, I have to change some values again and again, but I prefer to do it manually and save them as a csv file. Can any one help me with this? I am totally new at matlab, any kind of help would be appreciated.
reading = csvread("test.csv");
x = reading(:,1);
y = reading (:,7);
x1q = find((x >= -0.6) & (x <=-0.45))% range -0.6 and -0.45
p=polyfit(x(x1q), y(x1q),1)
slope= p(1)
figure(2)
plot(x, y, '-b')
hold on
plot(x(x1q), y(x1q),'ok');

Accepted Answer

KSSV
KSSV on 5 Feb 2021
Edited: KSSV on 5 Feb 2021
You have to run a loop for each column for which you want to get slopes.
data = csvread("test.csv");
[m,n] = size(data) ;
slope = zeros(n-1,1) ;
x = data(:,1);
for i = 2:n
y = data (:,i); % pick each column
idx = find((x >= -0.6) & (x <=-0.45))% range -0.6 and -0.45
p=polyfit(x(idx), y(idx),1) ;
slope(i-1) = p(1)
end
  5 Comments
KSSV
KSSV on 5 Feb 2021
Yes you are right......edited the code...loop should be from 2 to n....
Minions
Minions on 5 Feb 2021
ok, thank you so much for the help.

Sign in to comment.

More Answers (0)

Categories

Find more on Specifying Target for Graphics Output in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!