24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1512  |  回复: 9

kkx1986

金虫 (正式写手)

[求助] matlab for循环

如果在matlab的for循环中,即出现i+1,又出现i,请问应该怎么处理,比如
for n=1:10
    Sn+1=Sn+f
end
Sn+1、Sn都不能写成S(n+1)、S(n)的形式。
像这种形式的循环应该怎么处理?
如果n=1的时候
Sn+1=S2,Sn=S1.
希望能够给出具体的例子,谢谢!

PS:上面列出的只是简单的例子,不要纠结f是什么,我只是想知道类似于这种形式的循环应该怎么处理。

[ Last edited by kkx1986 on 2011-10-20 at 20:27 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

千头万绪净心第一不净心全是废话,二六时中精进为先不精进一事无成。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

你这问题问的,真迷糊啊
2楼2011-10-20 21:13:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kkx1986

金虫 (正式写手)

引用回帖:
2楼: Originally posted by 信彼南山 at 2011-10-20 21:13:17:
你这问题问的,真迷糊啊

那应该怎么问?
千头万绪净心第一不净心全是废话,二六时中精进为先不精进一事无成。
3楼2011-10-20 21:47:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

★ ★
臭水沟(金币+1): 谢谢交流~~ 2011-10-21 11:25:29
臭水沟(金币+1): 谢谢交流~~ 2011-10-21 11:25:31
引用回帖:
1楼: Originally posted by kkx1986 at 2011-10-20 20:26:04:
如果在matlab的for循环中,即出现i+1,又出现i,请问应该怎么处理,比如
for n=1:10
    Sn+1=Sn+f
end
Sn+1、Sn都不能写成S(n+1)、S(n)的形式。
像这种形式的循环应该怎么处理?
如果n=1的时候
Sn+1=S ...

这确实不简介地回答,随便找本MATLAB基础一些的参考书,看看就知道了。
明德厚学、求是创新
4楼2011-10-20 22:03:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nuonuoma

银虫 (小有名气)

【答案】应助回帖

kkx1986(金币+1): 回答得太迷糊,我知道书上都有,谢谢。 2011-10-21 08:26:50
问得迷糊,你可以找一本matab的书籍看一下,很容易上手。
每天进步一点点~
5楼2011-10-20 22:07:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kkx1986

金虫 (正式写手)

其实就是一个迭代的问题,如果Sn+1是矩阵,那么在循环的时候可以写成很简单的
S(n+1)=S(n)+f
但是我这里的Sn+1表示的一个变量,S和n+1不能分开的。
千头万绪净心第一不净心全是废话,二六时中精进为先不精进一事无成。
6楼2011-10-21 08:30:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖


kkx1986(金币+40): 十分感谢!请问给本相关的参考书吗? 2011-10-21 10:32:52
臭水沟(金币+1): 谢谢交流~~ 2011-10-21 11:26:12
这里其实是关于S的问题,你的意思是S存储的东西不能用n+1递推,是吗
这里可以把S定义为元胞数组或者矩阵,它什么类型的变量都能存储,就没问题了
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
7楼2011-10-21 08:47:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★
kkx1986(金币+9): 十分感谢! 2011-10-21 10:32:17
臭水沟(金币+2): 谢谢热心~~ 2011-10-21 11:26:20
举个例子
CODE:
>> X=rand(20,4);n=4;
>> h=plot(X);
s=cell(n,1);
for i=1:n
    s{i,1}=['Group',num2str(i)];
end
legend(h,s)

这里s存储的是 线的标识
如果Sn+1表示的一个变量
下面的方法你可以借鉴下
CODE:
n=5;
for i=1:n
eval(['A',num2str(i),'=',num2str(n^2),';']);
end

>> A1

A1 =

    25

>> A2

A2 =

    25
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
8楼2011-10-21 09:05:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hhucy

实习版主 (著名写手)

DOE锅炉工

引用回帖:
8楼: Originally posted by dbb627 at 2011-10-21 09:05:00:
举个例子
CODE:
>> X=rand(20,4);n=4;
>> h=plot(X);
s=cell(n,1);
for i=1:n
    s{i,1}=['Group',num2str(i)];
end
legend(h,s)

这里s存储的是 线的标识
如果Sn+1表示的一个变量
...

想问下 如果matlab求解微分方程 边界条件是无穷大处为一常数 可以实现么
人生那么多不确定,你怕什么
9楼2011-10-21 19:50:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

★ ★
臭水沟(金币+2): 谢谢交流~~ 2011-10-22 09:18:44
符号解
dsolve('D2y-y+exp(-x)=0','y(0)=0','y(inf)=2')

ans =

1/exp(x) + (exp(inf)/exp(x) - 1/exp(x) + 2)/(exp(t)*(1/exp(inf) - exp(inf))) - (exp(t)*(1/(exp(inf)*exp(x)) - 1/exp(x) + 2))/(1/exp(inf) - exp(inf))

但是你会注意到,里面有exp(inf)显然这是不合理的,换句话说inf必须是一个具体值

数值解也只能用个很大数替换
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
10楼2011-10-21 20:56:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kkx1986 的主题更新
信息提示
请填处理意见