Calculate slope of a discrete points
    조회 수: 37 (최근 30일)
  
       이전 댓글 표시
    
Hi all,
Can anyone please help me to find the instantaneous gradient (slope) at each points from the following datasets.
data=[
% X             Y
%===================
0.7761	0.5715
0.794	        0.5729
0.8117	0.5744
0.8292	0.5762
0.8465	0.5782
0.8637	0.5804
0.8807	0.5828
0.8977	0.5853
0.9144	0.5879
0.9311	0.5907
0.9477	0.5937
0.9641	0.5968
0.9805	0.6
0.9967	0.6033
1.0129	0.6067
1.0289	0.6103
1.0449	0.6139
1.0608	0.6176
1.0767	0.6215
1.0924	0.6254
1.1081	0.6294
1.1238	0.6334
1.1393	0.6376
1.1548	0.6418
1.1703	0.6461
1.1857	0.6505
1.201	        0.6549
1.2163	0.6593
1.2316	0.6639
1.2468	0.6685
1.2619	0.6731
1.277	        0.6778
1.2921	0.6825
1.3071	0.6873
1.3221	0.6921
1.3371	0.697
1.352	        0.7019
1.3669	0.7069
1.3818	0.7119
1.3966	0.7169
1.4114	0.722
1.4262	0.727
1.441	        0.7322
1.4557	0.7373
1.4704	0.7425
1.4851	0.7477
1.4997	0.753
1.5143	0.7583
1.5289	0.7635
1.5435	0.7689
1.5581	0.7742
1.5726	0.7796
1.5872	0.785
1.6017	0.7904
1.6162	0.7958
1.6307	0.8013
1.6451	0.8067
1.6596	0.8122
1.674	        0.8178
1.6884	0.8233
1.7028	0.8288
1.7172	0.8344
1.7315	0.84
1.7459	0.8456
1.7602	0.8512
1.7746	0.8568
1.7889	0.8624
1.8032	0.8681
1.8175	0.8737
1.8318	0.8794
1.8461	0.8851
1.8603	0.8908
1.8746	0.8965
1.8888	0.9023
1.9031	0.908
1.9173	0.9137
1.9315	0.9195
1.9457	0.9253
1.9599	0.931
1.9741	0.9368
1.9883	0.9426
2.0025	0.9484
2.0166	0.9543
2.0308	0.9601
2.0449	0.9659
2.0591	0.9718
2.0732	0.9776
2.0874	0.9835
2.1015	0.9893
2.1156	0.9952
2.1297	1.0011
2.1438	1.007
2.1579	1.0128
2.172	        1.0187
2.1861	1.0247
2.2002	1.0306
2.2143	1.0365
2.2284	1.0424
2.2425	1.0483
2.2565	1.0543];
The plot of the dataset is shown below

I have calculated the slope based on the two neighboring points, the results is copied below.
the gradient (m) is calculated using the following formula:

and the angle is just the arc-tan of the result.
Now, is it possible to obtain the instantaneous slope (gradient) at each point without using any curve-fitting to find the equation of the dataset? How can we do this numerically?
out =[
% X	          Y	    m	            atan	atandeg
%================================================================
0.7761	0.5715			
0.794	        0.5729	0.078212291	0.078053394	4.472130064
0.8117	0.5744	0.084745763	0.084543756	4.844000375
0.8292	0.5762	0.102857143	0.102496699	5.872628281
0.8465	0.5782	0.115606936	0.115096	6.594515032
0.8637	0.5804	0.127906977	0.127216217	7.288952324
0.8807	0.5828	0.141176471	0.14024961	8.035710711
0.8977	0.5853	0.147058824	0.146012258	8.365886124
0.9144	0.5879	0.155688623	0.154448697	8.849258471
0.9311	0.5907	0.167664671	0.166119551	9.517949161
0.9477	0.5937	0.180722892	0.178793055	10.24408745
0.9641	0.5968	0.18902439	0.186820161	10.70400675
0.9805	0.6	0.195121951	0.192700759	11.04094018
0.9967	0.6033	0.203703704	0.200954264	11.51383118
1.0129	0.6067	0.209876543	0.206873949	11.85300417
1.0289	0.6103	0.225	0.221314442	12.68038349
1.0449	0.6139	0.225	0.221314442	12.68038349
1.0608	0.6176	0.232704403	0.228635393	13.09984308
1.0767	0.6215	0.245283019	0.240534248	13.78159724
1.0924	0.6254	0.248407643	0.243479414	13.95034281
1.1081	0.6294	0.25477707	0.249469651	14.29355811
1.1238	0.6334	0.25477707	0.249469651	14.29355811
1.1393	0.6376	0.270967742	0.264613602	15.16124258
1.1548	0.6418	0.270967742	0.264613602	15.16124258
1.1703	0.6461	0.277419355	0.270614072	15.50504418
1.1857	0.6505	0.285714286	0.278299659	15.9453959
1.201	0.6549	0.287581699	0.280025283	16.04426686
1.2163	0.6593	0.287581699	0.280025283	16.04426686
1.2316	0.6639	0.300653595	0.292056315	16.73359422
1.2468	0.6685	0.302631579	0.293869335	16.83747263
1.2619	0.6731	0.304635762	0.295704342	16.94261077
1.277	0.6778	0.311258278	0.30175322	17.28918598
1.2921	0.6825	0.311258278	0.30175322	17.28918598
1.3071	0.6873	0.32	0.309702945	17.74467163
1.3221	0.6921	0.32	0.309702945	17.74467163
1.3371	0.697	0.326666667	0.315738603	18.09048937
1.352	0.7019	0.32885906	0.317718318	18.20391871
1.3669	0.7069	0.33557047	0.323762624	18.55023193
1.3818	0.7119	0.33557047	0.323762624	18.55023193
1.3966	0.7169	0.337837838	0.325799115	18.66691427
1.4114	0.722	0.344594595	0.331851221	19.01367439
1.4262	0.727	0.337837838	0.325799115	18.66691427
1.441	0.7322	0.351351351	0.337878188	19.35899418
1.4557	0.7373	0.346938776	0.333945072	19.13364321
1.4704	0.7425	0.353741497	0.340004105	19.48080023
1.4851	0.7477	0.353741497	0.340004105	19.48080023
1.4997	0.753	0.363013699	0.348220949	19.95159069
1.5143	0.7583	0.363013699	0.348220949	19.95159069
1.5289	0.7635	0.356164384	0.342155885	19.60408815
1.5435	0.7689	0.369863014	0.354259423	20.29756977
1.5581	0.7742	0.363013699	0.348220949	19.95159069
1.5726	0.7796	0.372413793	0.356501385	20.42602476
1.5872	0.785	0.369863014	0.354259423	20.29756977
1.6017	0.7904	0.372413793	0.356501385	20.42602476
1.6162	0.7958	0.372413793	0.356501385	20.42602476
1.6307	0.8013	0.379310345	0.362544237	20.77225468
1.6451	0.8067	0.375	0.35877067	20.55604522
1.6596	0.8122	0.379310345	0.362544237	20.77225468
1.674	0.8178	0.388888889	0.370891289	21.25050551
1.6884	0.8233	0.381944444	0.364845007	20.90407908
1.7028	0.8288	0.381944444	0.364845007	20.90407908
1.7172	0.8344	0.388888889	0.370891289	21.25050551
1.7315	0.84	0.391608392	0.373251365	21.38572793
1.7459	0.8456	0.388888889	0.370891289	21.25050551
1.7602	0.8512	0.391608392	0.373251365	21.38572793
1.7746	0.8568	0.388888889	0.370891289	21.25050551
1.7889	0.8624	0.391608392	0.373251365	21.38572793
1.8032	0.8681	0.398601399	0.379300105	21.73229519
1.8175	0.8737	0.391608392	0.373251365	21.38572793
1.8318	0.8794	0.398601399	0.379300105	21.73229519
1.8461	0.8851	0.398601399	0.379300105	21.73229519
1.8603	0.8908	0.401408451	0.381719969	21.87094317
1.8746	0.8965	0.398601399	0.379300105	21.73229519
1.8888	0.9023	0.408450704	0.387770172	22.21759427
1.9031	0.908	0.398601399	0.379300105	21.73229519
1.9173	0.9137	0.401408451	0.381719969	21.87094317
1.9315	0.9195	0.408450704	0.387770172	22.21759427
1.9457	0.9253	0.408450704	0.387770172	22.21759427
1.9599	0.931	0.401408451	0.381719969	21.87094317
1.9741	0.9368	0.408450704	0.387770172	22.21759427
1.9883	0.9426	0.408450704	0.387770172	22.21759427
2.0025	0.9484	0.408450704	0.387770172	22.21759427
2.0166	0.9543	0.418439716	0.396300932	22.70637084
2.0308	0.9601	0.408450704	0.387770172	22.21759427
2.0449	0.9659	0.411347518	0.390250283	22.35969418
2.0591	0.9718	0.415492958	0.39379062	22.56254053
2.0732	0.9776	0.411347518	0.390250283	22.35969418
2.0874	0.9835	0.415492958	0.39379062	22.56254053
2.1015	0.9893	0.411347518	0.390250283	22.35969418
2.1156	0.9952	0.418439716	0.396300932	22.70637084
2.1297	1.0011	0.418439716	0.396300932	22.70637084
2.1438	1.007	0.418439716	0.396300932	22.70637084
2.1579	1.0128	0.411347518	0.390250283	22.35969418
2.172	1.0187	0.418439716	0.396300932	22.70637084
2.1861	1.0247	0.425531915	0.402321098	23.05130092
2.2002	1.0306	0.418439716	0.396300932	22.70637084
2.2143	1.0365	0.418439716	0.396300932	22.70637084
2.2284	1.0424	0.418439716	0.396300932	22.70637084
2.2425	1.0483	0.418439716	0.396300932	22.70637084
2.2565	1.0543	0.428571429	0.404891786	23.19859051];
댓글 수: 1
채택된 답변
  Star Strider
      
      
 2019년 1월 8일
        
      편집: Star Strider
      
      
 2019년 1월 8일
  
      I would use the gradient (link) function.  Since the data need to be sampled regularly with respect to the independent variable (your data are not), you need to interpolate.  
Try this: 
data1 = linspace(min(data(:,1)), max(data(:,1)), size(data,1));
data2 = interp1(data(:,1),data(:,2),data1);
g = gradient(data2, diff(data1(1:2)));
figure
plot(data1, data2,    data1, g)
grid
legend('data', 'gradient', 'Location','NW')
EDIT — 
Data and calculated slope plot: 

댓글 수: 3
  Image Analyst
      
      
 2019년 4월 21일
				Your vectors are not the same length.  But the instantaneous slopes would be 
slopes = diff(y) ./ diff(x)
  sisir regmi
 2019년 4월 21일
				0.0600    13.22
    0.1550    179.6
    0.1800     438.2
    0.2500     687.8 
    0.2800     981.3
    0.4180    1152
    0.5540     931
    1.7370    91.24
    1.8220     80.37
    1.8230     37.61
    1.8240     12.09
    1.8250     70.55
    2.0290    96.34  
    2.0620     125.6
    2.0730     73.59
    2.0750     57.15
    2.0910     88.75
    2.1080     80.1
    2.1100     111.6
    2.1570     258.1
    3.1200     40.66
    3.2600     42.7
    3.3700    60.61
    3.4400     236.8
    3.5400     239.6
    3.5600     212.1
    3.5800     128.4
    3.9200     46.09
    4.0800       40.58
    4.1700       47.02
    4.1900       90.86
    4.3600       174.5
    4.3800       244.2
    4.3900       316.9
    4.4500       482
    4.4560       614.4
    4.4400      775.3
    4.4600       923.3
    4.3500       782.3
    4.5500       486.9
    4.6900      75.65
    5.1380     35.83
    5.2800      31.34
    5.4000      35.01
    5.5400      28.84
    5.6700      36.18
    5.7800      31.63
    5.8000      16.6
    5.8100      11.26
    5.9000      4.97
    5.9001     11.38
    5.9100     10.54
    5.9200     9.34
    6.1900     13.16
    6.2000     21.86
    6.2100     28.86
    6.4230     738.6
    6.5700     148.5
    6.6500     469.1
    6.7100     763.6
    6.7200     914.6
    6.8300     301.9
    6.8500   192
    6.9200   118.5
    7.1100   79.65 
    7.2500    49.06
now its the same length but when i give the command for slope it says matrix dimension must agree
추가 답변 (1개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




