ارسالها: 5
موضوعها: 1
تاریخ عضویت: آبان ۱۳۹۲
اعتبار:
0
سپاس ها 0
سپاس شده 3 بار در 1 ارسال
حالت من: هیچ کدام
۱۳۹۲/۰۸/۱۱, ۱۰:۰۹ ب.ظ
(آخرین تغییر در ارسال: ۱۳۹۲/۰۸/۱۲, ۱۲:۱۸ ق.ظ توسط admin.)
سلام این کدیه که من برا convolve نوشتم و میخوام function اش کنم خود کد درسته ولی تو فانکشنش مشکل دارم.خود کد رو هم اینجا میارم و هم فانکشنی که براش نوشتم ممنون میشم بگین مشکل فانکشنش چیه.اروری که برا اجرای فانکشن میاره اینه :Not enough input arguments.
خود کد:
کد: clc;
clear all;
close all;
t=0:1/20:9*(1/20);
x=rand(1,10);
subplot(3,3,1);plot(t,x)
title('x(t)','color','B')
t=0:1/20:9*(1/20);
h=rand(1,10)';
subplot(3,3,2);plot(t,h)
title('h(t)','color','B')
for i=1:length(h)
X(i:length(x)+(i-1),i)=(x(1,:))'
end
y=X*h;
% I titled y=X*h as "Mconv(x,h)"
subplot(3,3,4);plot(y);title('Mconv(x,h)','color','B')
subplot(3,3,5);plot(conv(x,h));title('conv(x,h)','color','B')
it's function:
کد: function [ X ] = Mconvolve(x,h)
for i=1:length(h)
X(i:length(x)+(i-1),i)=(x(1,:))';
end
end
سپاس شده توسط | |
|
ارسالها: 2,933
موضوعها: 191
تاریخ عضویت: تير ۱۳۹۱
اعتبار:
126
سپاس ها 1688
سپاس شده 3507 بار در 2023 ارسال
حالت من:
۱۳۹۲/۰۸/۱۲, ۱۱:۵۳ ق.ظ
(آخرین تغییر در ارسال: ۱۳۹۲/۰۸/۱۲, ۱۱:۵۴ ق.ظ توسط admin.)
سلام.
تابع رو به صورت زیر تعریف می کنیم :
کد: function [X] = Mconvolve(x,h)
t=0:1/20:9*(1/20);
subplot(3,3,1);plot(t,x)
title('x(t)','color','B')
t=0:1/20:9*(1/20);
subplot(3,3,2);plot(t,h)
title('h(t)','color','B')
for i=1:length(h)
X(i:length(x)+(i-1),i)=(x(1,:))'
end
y=X*h;
% I titled y=X*h as "Mconv(x,h)"
subplot(3,3,4);plot(y);title('Mconv(x,h)','color','B')
subplot(3,3,5);plot(conv(x,h));title('conv(x,h)','color','B')
end
و سپس به صورت زیر به آن ارجاع می دهیم :
کد: clear all
close all
clc
x=rand(1,10);
h=rand(1,10)';
X=Mconvolve(x,h)
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
سپاس شده توسط | |
|
ارسالها: 5
موضوعها: 1
تاریخ عضویت: آبان ۱۳۹۲
اعتبار:
0
سپاس ها 0
سپاس شده 3 بار در 1 ارسال
حالت من: هیچ کدام
ممنون از شما.حالا اگه بخوایم از این فانکشن برا یه تابع دیگه مثلا غیر رندوم استفاده کنیم چی؟مگه نه اینکه تابعی که تعریف میشه باید برا همه شرایط جواب بده؟!این تابعی که شما تعریف کردید به خاطر وجود بازه زمانی در حوزه محدودی جواب خواهد داد!
سپاس شده توسط | |
|
ارسالها: 2,933
موضوعها: 191
تاریخ عضویت: تير ۱۳۹۱
اعتبار:
126
سپاس ها 1688
سپاس شده 3507 بار در 2023 ارسال
حالت من:
من بر اساس ورودی و خروجی هایی که شما مشخص کرده بودید، تابع رو تعریف کردم. حالا اگر قصد دارید که تابع بتونه برای بازه های زمانی مختلف جواب بده، باید t رو از تابع بیارید بیرون و یک ورودی دیگر با نماد t ، به ورودی های تابع اضافه کنید. یعنی شما t رو در بیرون از تابع تعریف کرده و سپس آن را به تابع می دهید تا بر اساس آن، پردازش کند.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
سپاس شده توسط | |
|
ارسالها: 5
موضوعها: 1
تاریخ عضویت: آبان ۱۳۹۲
اعتبار:
0
سپاس ها 0
سپاس شده 3 بار در 1 ارسال
حالت من: هیچ کدام
۱۳۹۲/۰۸/۱۳, ۰۷:۱۸ ب.ظ
(آخرین تغییر در ارسال: ۱۳۹۲/۰۸/۱۳, ۰۷:۲۳ ب.ظ توسط sonia.)
(۱۳۹۲/۰۸/۱۲, ۰۱:۲۵ ب.ظ)'admin' نوشته: من بر اساس ورودی و خروجی هایی که شما مشخص کرده بودید، تابع رو تعریف کردم. حالا اگر قصد دارید که تابع بتونه برای بازه های زمانی مختلف جواب بده، باید t رو از تابع بیارید بیرون و یک ورودی دیگر با نماد t ، به ورودی های تابع اضافه کنید. یعنی شما t رو در بیرون از تابع تعریف کرده و سپس آن را به تابع می دهید تا بر اساس آن، پردازش کند.
سپاس شده توسط | |
|
ارسالها: 5
موضوعها: 1
تاریخ عضویت: آبان ۱۳۹۲
اعتبار:
0
سپاس ها 0
سپاس شده 3 بار در 1 ارسال
حالت من: هیچ کدام
۱۳۹۲/۰۸/۱۳, ۰۷:۲۰ ب.ظ
(آخرین تغییر در ارسال: ۱۳۹۲/۰۸/۱۳, ۰۸:۴۰ ب.ظ توسط admin.)
(۱۳۹۲/۰۸/۱۳, ۰۷:۱۸ ب.ظ)'sonia' نوشته: (۱۳۹۲/۰۸/۱۲, ۰۱:۲۵ ب.ظ)'admin' نوشته: من بر اساس ورودی و خروجی هایی که شما مشخص کرده بودید، تابع رو تعریف کردم. حالا اگر قصد دارید که تابع بتونه برای بازه های زمانی مختلف جواب بده، باید t رو از تابع بیارید بیرون و یک ورودی دیگر با نماد t ، به ورودی های تابع اضافه کنید. یعنی شما t رو در بیرون از تابع تعریف کرده و سپس آن را به تابع می دهید تا بر اساس آن، پردازش کند.
کد: ممنونم من تابعی که جواب داد رو میذارم اینجا به نظرتون این درسته؟ شکلی که میخوامو کمو بیش میده:
کد پیاچپی: function [ y ] = Mconvolve( x,h )
for i=1:length(h) X(i:length(x)+(i-1),i)=(x(1,:))'; end
y=X*h
end
سپاس شده توسط | |
|
ارسالها: 2,933
موضوعها: 191
تاریخ عضویت: تير ۱۳۹۱
اعتبار:
126
سپاس ها 1688
سپاس شده 3507 بار در 2023 ارسال
حالت من:
۱۳۹۲/۰۸/۱۳, ۰۸:۳۷ ب.ظ
(آخرین تغییر در ارسال: ۱۳۹۲/۰۸/۱۳, ۰۸:۳۹ ب.ظ توسط admin.)
شما پردازش بر روی t رو از تابع بیرون آوردین، ولی کد زیر بهتره (بهتره پردازش داخل تابع باشه) :
کد: function [X] = Mconvolve(x,h,t)
subplot(3,3,1);plot(t,x)
title('x(t)','color','B')
subplot(3,3,2);plot(t,h)
title('h(t)','color','B')
for i=1:length(h)
X(i:length(x)+(i-1),i)=(x(1,:))'
end
y=X*h;
% I titled y=X*h as "Mconv(x,h)"
subplot(3,3,4);plot(y);title('Mconv(x,h)','color','B')
subplot(3,3,5);plot(conv(x,h));title('conv(x,h)','color','B')
end
و به صورت زیر، به تابع ارجاع می دهیم :
کد: clear all
close all
clc
x=rand(1,10);
h=rand(1,10)';
t=0:1/20:9*(1/20);
X=Mconvolve(x,h,t)
همان طور که مشاهده می کنید، t نیز به عنوان ورودی تابع، تعریف شده است.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
سپاس شده توسط | |
|
ارسالها: 5
موضوعها: 1
تاریخ عضویت: آبان ۱۳۹۲
اعتبار:
0
سپاس ها 0
سپاس شده 3 بار در 1 ارسال
حالت من: هیچ کدام
ممنون
|