How to Calculate linear trend for each column of a matrix
    10 views (last 30 days)
  
       Show older comments
    
    Shakir Hussain
 on 23 Nov 2018
  
    
    
    
    
    Answered: Star Strider
      
      
 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
0 Comments
Accepted Answer
  Star Strider
      
      
 on 23 Nov 2018
        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.  
0 Comments
More Answers (1)
  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');
3 Comments
  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.
See Also
Categories
				Find more on Data Preprocessing 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!

