Asked by Shakir Hussain
on 23 Nov 2018

Can we calculate the linear trend of each column of a matrix without drawing any line,

For example I want to calculate the linear trend for the column a,b,c,d,e of the attached data

Thank you for any tips or help

Answer by Star Strider
on 23 Nov 2018

Accepted Answer

Try this:

[D,S] = xlsread('test.xlsx');

B = [(1:size(D,1))', ones(size(D,1),1)] \ D

producing:

B =

-0.7307 -0.6702 -0.5743 -0.5264 -0.3016

38.1515 33.7212 35.0423 35.3009 35.6209

The first row are the slopes and the second row are the intercepts. The columns are for ‘a’ through ‘e’ respectively.

Sign in to comment.

Answer by Luna
on 23 Nov 2018

Hi,

I think you can use polyfit simply for this problem.

Here is an example code. You can apply it for the other columns aswell.

[num,txt,raw] = xlsread('test.xlsx');

columnNames = txt(1,:);

columnNames(1) = [];

for i = 1:numel(columnNames)

colData.(columnNames{i}) = num(:,i);

end

x = 1:12;

linearCoefficients = polyfit(x,colData.a',1); % First degree linear fit

yFit = polyval(linearCoefficients, x);

% Apply it for colData.b and c .. so on.

%% To see data and line

figure;

plot(x,colData.a','bo');

hold on;

plot(x,yFit,'-r');

Luna
on 23 Nov 2018

Btw, I assumed your x data from 1 to 12. You can choose any other column as reference.

Shakir Hussain
on 23 Nov 2018

dear luna, thanks for your response

yes you rightly assumed it. Could we deal it a matlab matrix without having column names? and have R and P value of all Y columns.

how do you think about this method https://www.mathworks.com/matlabcentral/fileexchange/46363-trend?

Luna
on 23 Nov 2018

Ah, that columnNames I just only used to extract the xls file easily.

You can always use below xlsread function outputs as you wish.

num gives you the only numerical matrix, txt only gives you the non-numeric text values, raw is the whole data as a cell array.

just get num and take each column of it one by one.

[num,txt,raw] = xlsread('test.xlsx')

R = num(:,1) % first column

P = num(:,2) % second colum, etc...

According to that function in FileExchange, I haven't run it. You can try that also and compare the results with polyfit.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.