function slope ??? Undefined function or method

10 vues (au cours des 30 derniers jours)
Nawawit
Nawawit le 30 Avr 2013
Commenté : Walter Roberson le 13 Fév 2021
??? Undefined function or method 'slope' for input arguments of type 'double'.
the code is
decay(j-2,j9)=mean (slope(1:j5-1,j1));
how can i plot slope but my matlab don't have slope function
help me plz

Réponses (4)

Wayne King
Wayne King le 30 Avr 2013
slope() is not a Mathworks function, but you can use polyfit() to fit a first-order polynomial to some data and get the slope by extracting the coefficient corresponding to the first power.
x = 0:20;
y = 2*x+0.01*randn(size(x));
coefs = polyfit(x,y,1);
The estimated slope is coefs(1)

Jan
Jan le 30 Avr 2013
So what kind of help do you expect? My Matlab does not have a slope function also. It is also not clear, what this function should calculate. When it is the slope, what do you expect as output for "1:j5.1"? Obviously this is a constant and trivial to calculate.
Perhaps gradient helps already.

Nawawit
Nawawit le 30 Avr 2013
[fname,pname] = uigetfile('*.lvm');
rawdata=load (fname);
for j1=1:length(rawdata)/31;
time(j1,1)=(rawdata(31*j1,2)-rawdata(31,2))/1000;
for j2=1:30;
thirdoctave(j1,j2)=rawdata((j1-1)*31+j2,2);
end
end
[maxdb,idb]=max(thirdoctave);
for j=3:8;
j1=j*3;
j2=idb(j1);
j3=1;
flag=0;
j5=1;
end
while flag==0;
if j3>3 & j2+1<=length(thirdoctave) & thirdoctave(j2+1,j1)>thirdoctave(j2,j1)
flag=1;
else if j2 == length(time);
flag=1;
else
cropdata(j3,:,j1)=[time(j2),thirdoctave(j2,j1)];
if j3>1;
for j4=1:j3-1
slope(j5,j1)=(cropdata(j3,2,j1)-cropdata(j3-j4,2,j1))/(cropdata(j3,1,j1)-cropdata(j3-j4,1,j1));
j5=j5+1;
end
end
j2=j2+1;
j3=j3+1;
end
end
decay(j-2,j2)=mean(slope(1:j5-1,j1));
end
freqs=[20;25;31.5;40;50;63;80;100;125;160;200;250;315;400;500;630;800;1000;1250;1600;2000;2500;3150;4000;5000;6300;8000;10000;12500;16000];
freqcrop=[125;250;500;1000;2000;4000];
reverb=-60./decay;
this code matlab
and data file in .lvm it example data
i want measured reverberation time(RT60) use in labview and calculate in matlab
** i calculate code matlab error
  1 commentaire
Walter Roberson
Walter Roberson le 13 Fév 2021
the problem is not a missing function slope. The problem is that
if j3>1;
for j4=1:j3-1
slope(j5,j1)=(cropdata(j3,2,j1)-cropdata(j3-j4,2,j1))/(cropdata(j3,1,j1)-cropdata(j3-j4,1,j1));
j5=j5+1;
end
is never true so that you never assign to the variable named slope

Connectez-vous pour commenter.


Yash Chordia
Yash Chordia le 12 Fév 2021
Modifié(e) : Yash Chordia le 12 Fév 2021
You can brute force it by the actual formula of slope ---> f(x +Δx) - f(x) / Δx
%slope
for count = 1:length(y)-1
v(count) = (y(count + 1) - y(count))/(t(count + 1) - t(count));
end
%v has one less element than y so, correcting it
v(length(y)) = v(length(y)-1)
you can adjust the code accordig to your requiremnt. Here we are calculating slope of y

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by