关于利用matlab绘制股票线型的数据问题
以下是在commandwindow中输入的代码clear;clc;load'bggf.mat';%存储宝钢股份股价的数据文件r=size(bggf,1);figurehi...
以下是在command window中输入的代码
clear;clc;
load 'bggf.mat'; %存储宝钢股份股价的数据文件
r=size(bggf,1);
figure
highlow(bggf(r-100:r,2),bggf(r-100:r,3),bggf(r-100:r,4),bggf(r-100:r,1),'r')
title('宝钢股份100天股价走势线型图');
xlabel('日期');
ylabel('宝钢股份股价/元');
axis([0,100,10,inf]);
dateaxis('x',2,'9-Dec-2007');
问题是我不知道这个bggf.mat文件中的数据应该是怎么样的一个形式
这是我在M文件中的数据格式 但是这样不正确
matlab会显示Subscript indices must either be real positive integers or logicals.
求大神指点
4.96 7.36 4.88 6.09
5.81 5.94 5.69 5.7
5.68 5.7 5.5 5.58
5.58 5.65 5.52 5.53
5.53 5.54 5.28 5.34
5.34 5.45 5.32 5.35
5.35 5.36 5.26 5.29
5.3 5.43 5.28 2.36
5.36 5.44 5.35 5.38
5.4 5.45 5.39 5.4
不知道怎么传文件
只能这样发 辛苦你了 展开
clear;clc;
load 'bggf.mat'; %存储宝钢股份股价的数据文件
r=size(bggf,1);
figure
highlow(bggf(r-100:r,2),bggf(r-100:r,3),bggf(r-100:r,4),bggf(r-100:r,1),'r')
title('宝钢股份100天股价走势线型图');
xlabel('日期');
ylabel('宝钢股份股价/元');
axis([0,100,10,inf]);
dateaxis('x',2,'9-Dec-2007');
问题是我不知道这个bggf.mat文件中的数据应该是怎么样的一个形式
这是我在M文件中的数据格式 但是这样不正确
matlab会显示Subscript indices must either be real positive integers or logicals.
求大神指点
4.96 7.36 4.88 6.09
5.81 5.94 5.69 5.7
5.68 5.7 5.5 5.58
5.58 5.65 5.52 5.53
5.53 5.54 5.28 5.34
5.34 5.45 5.32 5.35
5.35 5.36 5.26 5.29
5.3 5.43 5.28 2.36
5.36 5.44 5.35 5.38
5.4 5.45 5.39 5.4
不知道怎么传文件
只能这样发 辛苦你了 展开
1个回答
展开全部
从bggf.mat 读得的bggf数据看上去有4列
看你用highlow 函数的调用方式,这四列应该是
开市价 最高价 最低价 收市价
而r是用size获得的数据的行数
之所以报错就是bggf(r-100:r,2)取下标的时候错了
r是数据的行数,肯定是个正整数没错,错就错在r-100
你文件里面的数据如果不足100行,那么r-100就会出现负数
数据正好是100行,那么r-100就会等于0
在matlab里面,下标是从1开始的正整数,所以发生以上情况就会错
如果你的数据是刚刚好100行的,那么完全不用这么麻烦,直接用:代替就可以了
highlow(bggf(:,2),bggf(:,3),bggf(:,4),bggf(:,1),'r')
但是这样写无论是数据有多少行,图都会照画,不足100行,超过100行照单全收
如果你的数据有超过100行,你只想取最后的100行,你应该减99而不是100
highlow(bggf(r-99:r,2),bggf(r-99:r,3),bggf(r-99:r,4),bggf(r-9:r,1),'r')
但是当数据不足行时,这样写会同样报错
看你用highlow 函数的调用方式,这四列应该是
开市价 最高价 最低价 收市价
而r是用size获得的数据的行数
之所以报错就是bggf(r-100:r,2)取下标的时候错了
r是数据的行数,肯定是个正整数没错,错就错在r-100
你文件里面的数据如果不足100行,那么r-100就会出现负数
数据正好是100行,那么r-100就会等于0
在matlab里面,下标是从1开始的正整数,所以发生以上情况就会错
如果你的数据是刚刚好100行的,那么完全不用这么麻烦,直接用:代替就可以了
highlow(bggf(:,2),bggf(:,3),bggf(:,4),bggf(:,1),'r')
但是这样写无论是数据有多少行,图都会照画,不足100行,超过100行照单全收
如果你的数据有超过100行,你只想取最后的100行,你应该减99而不是100
highlow(bggf(r-99:r,2),bggf(r-99:r,3),bggf(r-99:r,4),bggf(r-9:r,1),'r')
但是当数据不足行时,这样写会同样报错
更多追问追答
追问
追答
直接不要axis这句,看看图像能不能显示
或者只用下面这句设置x轴的范围
set(gca,'Xlim',[0 100]);
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询