פורסם 2005 במאי 120 שנים say i've got this function h matlab speaking, i'll define it by - n = -29:29 h = n*exp(n/10) now i want to calculate the following function how do i do that ?
פורסם 2005 במאי 120 שנים בשביל להגדיר את הפונק' פשוט תשתמש בקובץ m עם תנאי פשוטfunction result=h(n)if(abs(n)<=30) result=exp(n/10)else result=0end;זה אם אני זוכר את התחביר נכוןובטח יש איזו פונק' שעושה סכומים אינסופיים
פורסם 2005 במאי 120 שנים מחבר since these are my first steps with matlab, i'm gonne need a bit more specific explanation
פורסם 2005 במאי 120 שנים בשביל להגדיר פונק' משלך אתה צריך ליצור קובץ m שהשם שלו יהיה השם של הפונק'בזמן שהגבת כבר ערכתי את ההודעה עם מה שצריך להיות התוכן של הקובץ הזהאם תשמור את זה כקובץ h.m בתיקיית העבודה שלך, תוכל לגשת אל הפונק' כמו לכל פונק' אחרתהקובץ m צריך להכיל הצהרה -function result=func(x)ל-result אתה צריך להכניס את התוצאה בסוף הפונק' (יכול להיות ריבוי - [result1 result2]?)func זה שם הפונק' והקובץx זה הפרמטר שאתה מקבל (יכול להיות מערך)ה-if די ברור אם למדת שפת תכנות אחרת כלשהי
פורסם 2005 במאי 220 שנים מחבר function result=h(n)if(abs(n)<=30) result=exp(n/10)else result=0end;i've defined the function as you said, problem is when i enter a vector with one value above 29, the result is just 0. for example:h([5 75 7]) = 0, instead of [1.6487 0 2.0138]
פורסם 2005 במאי 220 שנים זה אמור לעבוד:function result = h(n)result = exp(n/10);result = result .* (abs(n) <= 30);ה-; בסוף משפט אומרת למטלאב לא להדפיס למסך את התוצאה.הנקודה לפני ה-* אומרת למטלאב להכפיל את הוקטורים (או מטריצות) איבר איבר, ולא כפל של אלגברה ליניארית.
פורסם 2005 במאי 220 שנים מחבר ok that works greatnow i want to calculate hper as stated above.function mean = hper(n)offset = mod(n,5)A = offset : 5 : 25+offsethper = sum(h(A))it works good for plain numbers, but not for vectors (for example hper([1 2 3]) (i'm getting "Colon operands must be real scalars" warning and only one result)
פורסם 2005 במאי 220 שנים כתבתי לך את הפונ' hper מחדש.אני לא בטוח 100% בנכונות וגם אני לא בטוח שאני מבין מה אתה מנסה לעשות...function mean = hper(n)offset = mod(n,5);jumps = 0:5:25;A = offset' * ones(size(jumps));A = A';B = jumps' * ones(size(offset));C = A+B;hper = sum(h(C))הייתי מציע שתעבור על כל שלב ושלב ידנית במטלאב, כדי שתראה מה התוצאות... אני מקווה שזה לא מסובך מידי (לוקח זמן לקלוט את העבודה עם וקטורים ומטריצות).מממ... אני לא אפרט כרגע, פשוט תעבור על כל שלב בתוכנית (ותפרק אותם לתתי שלבים) בקונסול של מטלאב.אם יש משהו לא מובן תשאל.עריכה: הפתרון הזה מתאים מן הסתם רק ל-n שהוא מספר או וקטור שורה (ולא מטריצה, או וקטור עמודה). כלומר n מהצורה: [a b c...]
פורסם 2005 במאי 220 שנים למה עשית offset טאג ??הגודל שלו זה 1X1עריכה*אופס עכשיו ראיתי שהוא רוצה להכניס ווקטור בתור N
פורסם 2005 במאי 220 שנים מחבר allright thanks !another thing - i've got this function (x1) and i want to numerically comute it's fourier transform, X(jw), where w is a frequency vectorthis is what i've done and i belive i made a little messw = -500*2*pi : 2*pi : 500*2*pi;dt = 1/1000;k = [-501:-2 1 : 601] ;A = x1(dt*k) * real(exp (-j * dt * k' * w));B = x1(dt*(k+1)) * real(exp (-j * dt * (k+1)' * w));C = (A + B) * dt / 2;X = sum(C)i want X(jw) to be a vector of |w| length, but i'm only getting a scalar..[attachment deleted by admin]
פורסם 2005 במאי 220 שנים תכתוב בקונסולה help fft הנה משהו לדוגמא שעשיתי בפרוייקט לפני שבוע בערך תנסה להבין eval(['im = wavread(''rap\' num2str(i) '.wav '');']); a=im(:,1); for j=1:5 ra=ceil(rand*(size(a)-600)); pt=a(ra:ra+600); tmpP=double(pt(); Y=fft(tmpP); Y(1)=[]; tmp = Y.*conj(Y)/600; %len=sqrt((tmp'*tmp)); counter=counter+1; p1(:,counter)=tmp'; %p(:,counter)=tmp/len; %WITH NORMALIZATION endend for i=R יש ב-help->Demos הסבר יותר טוב
פורסם 2005 במאי 220 שנים מחבר the whole point is staying away from premade functions for fourier transforms, integrals , etc'i
פורסם 2005 במאי 520 שנים מחבר i dont understand this fft thingyi didnt understand your code - could you write me a simpler one that takes a function and plots it's transform?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.