登录论坛

查看完整版本 : [求助]一個很簡單的MATLAB程序,不知道錯在哪里


lydia940
2008-10-12, 22:20
我是MATLAB的新手,很不好意思問大家一個很簡單的問題,我嘗試了好久,但還是不知道錯在哪里,所以只好請教大家了。

用MATLAB function
function [x,n] = impseq(n0,n1,n2)
% generates x(n) = delta(n-n0); n1 <= n <= n2
% [x, n] = impseq(n0, n1, n2)
n = [n1:n2]; x = [(n-n0) == 0];
去實現x(n)=2*delta(n+2)-delta(n-4), -5<=n<=5

出錯的程序如下,

function [x,n] = impseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];

n=[-5:5];
x=2*impseq(-2,-5,5)-impseq(4,-5,5);
stem(n,x);
xlabel('n'); ylabel('x(n)'); title('Ex. 1a)')


每當我跑程序的時候,MATLAB的窗口總是提示我如下信息,

??? Input argument "n1" is undefined.

Error in ==> example at 2
n=[n1:n2];


這個很簡單的程序到底錯在哪里了? n1不是定義到-5了嗎?

希望可以從大家哪里得到答案,謝謝:)

lyzhan
2008-10-13, 10:41
你的函数本身就有问题,得到的结果有两个,但是在主程序里又当作有一个结果

a490261118
2008-10-21, 15:05
修改下上面的子程序!!!

guofeng0108
2008-10-22, 13:04
为什么错我不知道,这个程序我也用过,但是只要把函数和主程序分开存储,就可以正常运行了!!!
你可以试试

lydia940
2008-11-24, 14:17
为什么错我不知道,这个程序我也用过,但是只要把函数和主程序分开存储,就可以正常运行了!!!
你可以试试

謝謝 guofeng0108,我按找你講的把函數和主程序分開存儲在同一文件夾下,但當運行主程序的時候,發生了如下錯誤,

Undefined function or method 'impseq' for input arguments of type 'double'


在函數里面已經define 'impseq' 了啊!怎么他講undefined?:ft:

妄想
2008-12-16, 19:47
你将function函数存储成M文件,在命令窗口写上主程序即可