恳请指点函數使用
主程序如下:%Ch413
%清零
clear all;
clc;
%定义h和x
h=;
M=length(h)-1;
x=;
L=length(x);
%计算h和x的卷积
y=matcon(x,h);
%此处交换x和h的位置不影响结果,即y=Hx或y=Xh
Ly=length(y);
%输出结果
y
包含的matcon.m如下:
%用矩阵相乘的方法计算卷积
function y=matcon(x,h)
L=length(x);
M=length(h)-1;
H=zeros(L+M,L); %初始化H矩阵
for i=1:L
H(i:M+i,i)=h ;%给H矩阵赋值
end
%计算输出y
y=H*x'; %x'为列矩阵
y=y'; %最后输出y为行矩阵
最后运行时报错:???In an assignmentA(matrix,matrix) = B, the number of rows in B
and the number of elements in the A row index matrix must be the same.
Error in ==> C:\MATLAB6p5\work\matcon.m
On line 8==> H(i:M+i,i)=h ;%给H矩阵赋值
我还是一个初学者,不知道这句话里哪错了.还请大侠指点,谢谢
[ 本帖最后由 ChaChing 于 2009-5-16 00:27 编辑 ] x和h的列元素数量应该相同。。。 运行正常,没有错误:
ans =
8 3 11
y =
1 3 3 5 3 7 4 3 3 0 1
回复 板凳 friendchj 的帖子
不对,运行不出结果的~回复 板凳 friendchj 的帖子
matcon.m中的h应改成为h’回复 5楼 fenglingcao 的帖子
hehe,我是直接运行的。我的matlab版本是R2008a 奇! 我特地回v6.5执行下!结果同3F!
回复 6楼 friendchj 的帖子
难道是偶的版本太旧了,kaka~ ...Error in ==> C:\MATLAB6p5\work\matcon.mOn line 8 ==> H(i:M+i,i)=h ; %给H矩阵赋值 ...
LZ的版本已试过! 没错丫? 又运行了一次,没有出现昨天的问题。不过还是有个小小的ERROR~
ans = 8 3 11
y = 1 3 3 5 3 7 4 3 3 0 1
??? 包含的matcon.m如下:
|
Error: Missing variable or function. ...
??? 包含的matcon.m如下:
|
Error ...
LZ输入这段吗?
回复 11楼 ChaChing 的帖子
若将matcon.m单独存于C:\MATLAB6p5\work下,则运行如1楼所示报错。而若将1楼整段程序输入,出现后面那种情况~[ 本帖最后由 fenglingcao 于 2009-5-15 22:34 编辑 ] 若将matcon.m单独存于搜寻路径下, 即为m函数, 是没报错的!
LZ一定那里没注意到, 建议LZ另外程序亦存成Ch413.m档, 执行Ch413即可!
若将1楼整段程序输入命令窗,中间有"包含的matcon.m如下:"等字眼, 并非matlab语句, 当然报错(如10F)
还有建议楼主先看下function相关帮助文献
[ 本帖最后由 ChaChing 于 2009-5-16 00:32 编辑 ]
回复 13楼 ChaChing 的帖子
恩,我再试试~
页:
[1]