作业帮 > 综合 > 作业

matlab程序错误,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 00:21:52
matlab程序错误,
[x]=meshgrid(0:1:8)
q=0;
for j=1:5
s=1;
for i=1:3
s(j)=[s.*gaussmf(x(:,i),[j 4])];
end
s(j)
p=0 ;
for i=1:3
p=p+s(j);
end
y=(q+s(j)./p)';
end
In an assignment A(I) = B,the number of elements in B and
I must be the same.
应该是s(j)那出错了,但是我想分别求出j=1,2,3,4,5时的s,该怎么写呢,
你表达式s(j)的地方有问题,乘出来应该是一个列向量,你赋值成一个行向量的形式了.
[x]=meshgrid(0:1:8);
q=0;
for j=1:1%5
s=ones(9,1);
for i=1:3
s(:,j)=[s.*gaussmf(x(:,i),[j 4])];%9行1列
end
s(:,j)
p=0 ;
for i=1:3
p=p+s(:,j);
end
y=(q+s(:,j)./p)';
end
再问: 你好,请问j=1:1%5 这句是什么意思呢,还有,我还想把j=1,2,3,4,5的y值分别写出来,写在一个矩阵里面,该怎么描述呢
再答: 我调试的时候,忘记还原了。你改成j=1:5就可以了。
再问: 改成j=1:5就提示错误 ??? Error using ==> times Matrix dimensions must agree.,能帮我再看看么
再答: 你程序写的有点乱。我忘记你循环进去后,[s.*gaussmf(x(:,i),[j 4])];中的s也在变化。 clc; [x]=meshgrid(0:1:8); q=0; s=ones(9,9); for j=1:5 for i=1:3 s(:,j)=[s(:,j).*gaussmf(x(:,i),[j 4])];%9行1列 end s(:,j) p=0 ; for i=1:3 p=p+s(:,j); end y=(q+s(:,j)./p)'; end 这样可以调试成功,但是我也不太明白你的s主要算什么?