清水河畔客户端下载
登录 立即注册 开启辅助访问 切换到窄版
楼主: 盛世大唐

[数学] 求看看这个matlab代码错在哪儿

  [复制链接]
我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 12:49:39 | 显示全部楼层
hehe~~~ 发表于 2014-5-18 12:46
相当于c语言里的数组下标越界了

哦,THX
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 12:49:43 | 显示全部楼层
hehe~~~ 发表于 2014-5-18 12:46
相当于c语言里的数组下标越界了

哦,THX
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

一树梨花 该用户已被删除
发表于 2014-5-18 12:51:02 | 显示全部楼层
dalloway 发表于 2014-5-18 12:49
Matlab下标超出取值有问题,赋值没问题

那我就不知道了
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1416

精华
0
帖子
1908
威望
0 点
水滴
234 滴
在线时间
1225 小时
发表于 2014-5-18 12:52:11 | 显示全部楼层
盛世大唐 发表于 2014-5-18 04:42
>> clear all;close all;
mu=2;
x=0.6*ones(1,200);

clear all;
clc;
close all;
mu=2;
x=0.6*ones(1,200);
for n=1:200
    x(n+1)=mu*x(n)*(1-x(n));
end
plot(x(1,:),'k','markersize',10);
xlabel('n');
xlabel('x(n)');
title('logistic(\mu=0.5)');
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1416

精华
0
帖子
1908
威望
0 点
水滴
234 滴
在线时间
1225 小时
发表于 2014-5-18 12:53:09 | 显示全部楼层
盛世大唐 发表于 2014-5-18 04:42
>> clear all;close all;
mu=2;
x=0.6*ones(1,200);

xlable 这个没报错吗? 应该是xlabel。
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 13:25:17 | 显示全部楼层
llOoOll 发表于 2014-5-18 12:53
xlable 这个没报错吗? 应该是xlabel。

的确错了

但是没报错
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 13:54:13 | 显示全部楼层

>> sigma=16;
b=4;
r=45.92;
y=[-1,0,1];
h=0.01;
z=LorenzData(y,h,10000,sigma,r,b);
z=z(1:end,:);
X=z(:,1);
Y=z(:,2);
Z=z(:,3);
plot3(X,Y,Z);
xlabel('x');
ylable('y');
zlable('z');
??? Undefined command/function 'LorenzData'.
提示没有定义'LorenzData'
但是我不晓得怎么定义
帮我看看好么

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 13:55:16 | 显示全部楼层
llOoOll 发表于 2014-5-18 12:52
clear all;
clc;
close all;

大神请帮我看看27楼
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1912

精华
0
帖子
523
威望
0 点
水滴
589 滴
在线时间
1860 小时
发表于 2014-5-18 15:47:53 | 显示全部楼层
这个问题略多吧
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1592

五周年纪念勋章

精华
0
帖子
1742
威望
4 点
水滴
1024 滴
在线时间
1398 小时
发表于 2014-5-18 17:58:00 | 显示全部楼层
dalloway 发表于 2014-5-18 04:38
matlab赋值不存在这个问题

如果没有提前定义维数  是可以的
但是LZ的代码已经把维数定义成了one(200)  , 所以201会出错
虽然我只是个搬砖的挫男,能力普通,相貌平常,但我有着巅峰的梦想
回复 支持 反对

使用道具 举报

我的人缘0

级别:草鱼 (Lv.5)

积分
814

精华
0
帖子
1162
威望
0 点
水滴
783 滴
在线时间
698 小时
发表于 2014-5-18 18:17:27 | 显示全部楼层
楼主真逗,这么明显的错误
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 18:27:07 | 显示全部楼层
mashiqi 发表于 2014-5-18 18:17
楼主真逗,这么明显的错误

我是小白
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:河蟹 (Lv.3)

积分
303

精华
0
帖子
389
威望
0 点
水滴
237 滴
在线时间
264 小时
发表于 2014-5-18 19:19:06 | 显示全部楼层
写代码记得关掉中文输入法
楼主冒号明显是中文冒号
有些习惯也不是很好,比如clear all应另起一行
Index exceeds matrix dimensions表示矩阵定义有问题,小了
有点像CPP里的堆栈溢出
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:河蟹 (Lv.3)

积分
303

精华
0
帖子
389
威望
0 点
水滴
237 滴
在线时间
264 小时
发表于 2014-5-18 19:23:21 | 显示全部楼层
盛世大唐 发表于 2014-5-18 13:54
>> sigma=16;
b=4;
r=45.92;

Lorenzdata没这个函数啊,你调用不了的。
先定义Lorenzdata函数才行
楼主尽量不要直接在matlab对话框里写
新建个script写比较好

评分

参与人数 1水滴 +10 收起 理由
2901306015 + 10 谢谢分享

查看全部评分

欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 20:36:53 | 显示全部楼层
Ken_blabla 发表于 2014-5-18 19:23
Lorenzdata没这个函数啊,你调用不了的。
先定义Lorenzdata函数才行
楼主尽量不要直接在matlab对话框里写 ...

谢谢大神
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:河蟹 (Lv.3)

积分
438

精华
0
帖子
271
威望
0 点
水滴
730 滴
在线时间
411 小时
发表于 2014-5-18 20:45:04 | 显示全部楼层
mu本来就是一个值,等于2
后边出来一个mu(n),明显不对了
还有就是1:200, 然后有x(n+1)有越界的嫌疑
匆匆过客,谁淡去了红颜,谁送走了新欢!
回复 支持 反对

使用道具 举报

我的人缘0

级别:鳙鱼 (Lv.6)

积分
1661

五周年纪念勋章

精华
0
帖子
5651
威望
5 点
水滴
2239 滴
在线时间
1071 小时
 楼主| 发表于 2014-5-18 20:51:29 | 显示全部楼层
飘飞白雪 发表于 2014-5-18 20:45
mu本来就是一个值,等于2
后边出来一个mu(n),明显不对了
还有就是1:200, 然后有x(n+1)有越界的嫌疑 ...

谢谢大神们指点
在大神们的帮助下已经改过来了
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:河蟹 (Lv.3)

积分
277

精华
0
帖子
55
威望
0 点
水滴
415 滴
在线时间
271 小时
发表于 2014-5-18 23:32:24 | 显示全部楼层
matlab下标是从1开始取的
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

我的人缘0

级别:泥鳅 (Lv.4)

积分
733

精华
0
帖子
1279
威望
0 点
水滴
929 滴
在线时间
605 小时
发表于 2014-5-19 05:46:28 | 显示全部楼层

.

本帖最后由 逆流的鱼 于 2014-5-19 05:49 编辑

提一些建议:
1.可以用size和length命令检查变量的维度。如x=1:1:100,那么size(x)=[1,100]; length(x)=3; y=[1 2 3;4 5 6]那么size(y)=[2 3],length(y)则会报错。
2.代码出错很正常,尤其对于经验不是很丰富的。出错要注意看错误提示,根据提示debug。比如你提到的Index exceeds matrix dimensions,那么最简单的就是用length命令检查维度。比如x=1:100, 那么循环中需要用到x(101)(一般是赋值语句的等号右边),那么就会出现Index exceeds matrix dimensions的错误。
3.写代码时把输入法切换到英文,中文的标点符号matlab不认可。
4.用script写代码时,某一行语句中有错,右边则会出现一根红杠,把鼠标放在那可以查看错误原因。
5.用户自定义的函数要你自己写,不是照着书上搬。那个LorenzData应该是你看的书上的人自己写的,你要弄清楚他的算法和各个输入变量是什么意思,然后新建一个script自己把函数写出来,和你的main script放在一个文件夹里,然后才能调用。我不知道你的LorenzData为什么有6个input,可以仔细看一下书,把书上的算法搞懂。我个人认为三个输入就够了(x、r、b)。
6.最常用的matlab自带函数要很熟悉,还有一些基本的操作比如矩阵合并、取矩阵元、取矩阵的某几行、列等等。
最后祝matlab编程愉快。

评分

参与人数 1水滴 +30 收起 理由
2901306015 + 30 谢谢分享

查看全部评分

凡心所向,素履所往。生如逆旅,一苇以航。
回复 支持 反对

使用道具 举报

我的人缘0

级别:鲤鱼 (Lv.7)

积分
2044

富甲一方富甲天下ShowMeTheMoney!

精华
0
帖子
5657
威望
0 点
水滴
2460 滴
在线时间
1479 小时
发表于 2014-5-19 09:51:49 | 显示全部楼层
我觉得是n=1的时候x(1)没有初始值
欢迎访问清水河畔,请阅读新手导航以帮助你快速认识清水河畔。
回复 支持 反对

使用道具 举报

除水手之家外其他版块禁止回复灌水无意义内容或纯表情。请注意时间,不要挖坟。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4 © 1998--2021 StarStudio

GMT+8, 2021-12-6 13:33 , Processed in 0.308611 second(s), 277 queries , Gzip On.

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