声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 911|回复: 4

[编程技巧] 各位帮忙看看这个小函数出了什么问题?(谢谢)

[复制链接]
发表于 2009-3-19 12:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
编程的时候需要绘制离散序列和的时域波形,在书上找到一个离散序列相加的函数(代码如下),保存后调用是出现这样的错误提示,请问问题出在哪里?应该如何改动?各位高手帮帮忙吧,我是菜鸟,需要帮助。谢谢啦!
function[x,n]=jxl(x1,x2,n1,n2)
n=min(min(n1),min(n2)):max(max(n1),max(n2)); %构造和序列函数
s1=zeros(1,length(n));  s2=s1; %初始化新向量
s1(find((n>=min(n1))&(n<=max(n1))==1))=x1;  %将x1中在和序列范围内但又无定义的点赋值为零
s2(find((n>=min(n2))&(n<=max(n2))==1))=x2;  %将x2中在和序列范围内但又无定义的点赋值为零
x=s1+s2;  %两长度相等序列求和
axis([(min(min(n1),min(n2))-1),(max(max(n1),max(n2))+1), (min(x)-0.5),(max(x)+0.5)])  %设置坐标轴显示范围

调用的代码:
x1=[2,1,0,1,2]; n1=-2:2; x2=1:6; n2=0:5;
[x3,n3]=jxl(x1,n1,x2,n2);
stem(n3,x3,'filled')
运行后出现的错误提示如下:???  In an assignment  A(I) = B, the number of elements in B and
I must be the same.
Error in ==> jxl at 7
s1(find((n>=min(n1))&(n<=max(n1))==1))=x1;
我help find 了一下,find的调用好像没有这种形式,但是我不知道改如何改。而且这个是书本上的函数,会错得这么离谱?

[ 本帖最后由 ChaChing 于 2009-3-19 14:46 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-3-19 14:19 | 显示全部楼层

回复 楼主 一毛 的帖子

Is anybody can help me ?
发表于 2009-3-19 14:49 | 显示全部楼层
function[x,n]=jxl(x1,x2,n1,n2)
vs
[x3,n3]=jxl(x1,n1,x2,n2);

Check pls!

[ 本帖最后由 ChaChing 于 2009-3-19 14:52 编辑 ]
 楼主| 发表于 2009-3-19 15:33 | 显示全部楼层

>> x1=[2,1,0,1,2];
>> n1=-2:2;
>> x2=1:6;
>> n2=0:5;
>> [x3,n3]=jxl(x1,x2,n1,n2);
??? Error: File: jxl.m Line: 7 Column: 41
The expression to the left of the equals sign is not a valid target for an assignment.
为什么左边的表达式是无效的呢?
 楼主| 发表于 2009-3-19 15:57 | 显示全部楼层
我知道是为什么错了,是因为我在编写函数的时候这句
axis([(min(min(n1),min(n2))-1),(max(max(n1),max(n2))+1),(min(x)-0.5),(max(x)+0.5)])
在中间分行了,也就是写成了
axis([(min(min(n1),min(n2))-1),(max(max(n1),
max(n2))+1),(min(x)-0.5),(max(x)+0.5)])
但是程序报错的时候没有报这句的错,而是报

s1(find((n>=min(n1))&(n<=max(n1))==1))=x1;

s2(find((n>=min(n2))&(n<=max(n2))==1))=x2;

这两句的错。很奇怪啊。后来我先把上面那一句后面的x1和x2先改成0,然后再运行,这时才报最后一句的错。于是我把最后一句改好之后就可以出图了,但是很显然,出来的图是全为零的直线。所以,我就回去把原来的地方又改回x1和x2,再运行,哎呀!就正确啦!哈哈
谢谢chaching啦,你提醒我应该回去仔细检查程序。最后我才检查出来了问题所在,也让我知道以后写程序不能乱换行,而且一定要仔细。呵呵

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 17:35 , Processed in 0.055978 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表