楼主: 烈女乖乖
5246 27

[问答] 请高手帮我看下这个简单的迭代计算程序 [推广有奖]

11
liuxin9023 发表于 2012-3-6 21:02:42
麻烦你转置下行吗

12
烈女乖乖 发表于 2012-3-7 12:26:05
liuxin9023 发表于 2012-3-6 21:02
麻烦你转置下行吗
呵呵不是转置的问题

13
xjg1983 发表于 2012-3-7 13:30:44
我的看法和10楼的一样!

14
lustboy 发表于 2012-3-9 14:08:22
我已经把程序改好了,贴在十楼,楼主没看到吗?

15
烈女乖乖 发表于 2012-3-9 16:38:30
lustboy 发表于 2012-3-6 20:17
zs = zeros(23,1);
hs = zeros(24,1);
hs(1) = 3;
您好,我看到了,这里您给我加了一个限制hs是一个列向量,谢谢,我最近遇到新的问题,加入log运算之后就又不行了,,哎!

16
lustboy 发表于 2012-3-9 17:11:24
怎不行,你具体贴出来

17
烈女乖乖 发表于 2012-3-10 12:21:36
lustboy 发表于 2012-3-9 17:11
怎不行,你具体贴出来
zf=zeros(23,1);
hf(1)=0.0001259318;
for t=1:23;
log(hf(t+1))=0.000004+0.177428*zf(t)/sqrt(hf(t))+0.808882*log(hf(t));
end

这个程序运行之后显示错误如下:
Subscript indices must either be real positive integers or logicals

18
烈女乖乖 发表于 2012-3-10 12:23:25
lustboy 发表于 2012-3-9 17:11
怎不行,你具体贴出来
加入log之后,就显示这样的错误,我不清楚是为什么,谢谢您帮我看看!~

19
lustboy 发表于 2012-3-10 16:26:16
程序里的这个等号是赋值的意思,也就是说把等号右边的结果赋给左边的变量。
所以,等号左边不能出现函数操作,否则就变成了逻辑判断,而hf(t+1)还没有被赋值,计算机认为它是0.
修改后的程序为:
zf=zeros(23,1);
hf(1)=0.0001259318;
for t=1:23;
hf(t+1)=exp(0.000004+0.177428*zf(t)/sqrt(hf(t))+0.808882*log(hf(t)));
end
楼主看来还不太理解计算机语言的基本逻辑,建议看看编程的入门教材。

20
烈女乖乖 发表于 2012-3-10 17:06:31
lustboy 发表于 2012-3-10 16:26
程序里的这个等号是赋值的意思,也就是说把等号右边的结果赋给左边的变量。
所以,等号左边不能出现函数操 ...
明白了,谢谢你啊!~其实我就是没认真学习matlab,可惜最近论文里面有些小的运算需要用到它,又比较急,就随便看了几页书然后去编简单的程序,都怪平时不认真啊,好的谢谢你的提点。感激涕零!!!!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 09:49