查看: 1115|回复: 12|关注: 0

[已解决] 字符串数组如何转化成字符串向量或标量?

[复制链接]

新手

18 麦片

财富积分


050


14

主题

44

帖子

0

最佳答案
data2 =
  97×11 char 数组
    '02-Jan-2020'
    '03-Jan-2020'
    '06-Jan-2020'
    '07-Jan-2020'
    '08-Jan-2020'
    '09-Jan-2020'
      ....

如何将上述字符串数组转化成字符串向量或标量???
回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

564 麦片

财富积分


5001500


1

主题

357

帖子

106

最佳答案
  • 关注者: 8
发表于 2020-6-21 21:31:04 | 显示全部楼层
string(data2)
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


14

主题

44

帖子

0

最佳答案
 楼主| 发表于 2020-6-21 21:33:51 | 显示全部楼层

还是数组,我用的是2018a版本
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


14

主题

44

帖子

0

最佳答案
 楼主| 发表于 2020-6-21 21:39:26 | 显示全部楼层

我想使用candle函数绘制K线图,代码如下:
clc
clear all
TT=readtable('D:\matlab文件\Book1.xlsx');
tt=TT(:,2:5);
data=TT(:,1);
data1=table2array(data);
data2=datestr(data1);   
data3=string(data2)
open=table2array(tt(:,1));
%表是不支持下表索引的,需要将表转换成数组,使用table2array
high=table2array(tt(:,2));
low=table2array(tt(:,3));
close=table2array(tt(:,4));
candle(open,high,low,close,'red',data3);

运行之后:
data3 =

  97×1 string 数组

    "02-Jan-2020"
    "03-Jan-2020"
    "06-Jan-2020"
    "07-Jan-2020"
    "08-Jan-2020"
     ....
需要字符串标量或字符向量形式的参数名称。

也就是说要将数组变成向量或者标量,也就是data必须为向量或者标量,candle函数才能正常运行
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

564 麦片

财富积分


5001500


1

主题

357

帖子

106

最佳答案
  • 关注者: 8
发表于 2020-6-22 08:49:34 | 显示全部楼层
firstma 发表于 2020-6-21 21:39
我想使用candle函数绘制K线图,代码如下:
clc
clear all

感觉没明白你的意思,直接data2 = datenum(data1);
最后一句改为candle(open,high,low,close,'red',data2,'dd-mmm-yyyy');不就可以了
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


14

主题

44

帖子

0

最佳答案
 楼主| 发表于 2020-6-22 10:51:04 | 显示全部楼层
帕拉代斯 发表于 2020-6-22 08:49
感觉没明白你的意思,直接data2 = datenum(data1);
最后一句改为candle(open,high,low,close,'red',data2 ...

您提出的这个解决方法,我想过也试过,但是运行之后,还是会提示:需要字符串标量或则字符向量形式的参数名称
也就是说data2必须是标量或者向量才可以
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

564 麦片

财富积分


5001500


1

主题

357

帖子

106

最佳答案
  • 关注者: 8
发表于 2020-6-22 11:08:36 | 显示全部楼层
firstma 发表于 2020-6-22 10:51
您提出的这个解决方法,我想过也试过,但是运行之后,还是会提示:需要字符串标量或则字符向量形式的参数 ...

你把数据传上来
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


14

主题

44

帖子

0

最佳答案
 楼主| 发表于 2020-6-22 15:27:28 | 显示全部楼层

300263股票的开盘价,最高价,最低价,收盘价,时间范围:年初至五月底

Book1.xlsx

15.54 KB, 下载次数: 1

回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

564 麦片

财富积分


5001500


1

主题

357

帖子

106

最佳答案
  • 关注者: 8
发表于 2020-6-22 16:03:53 | 显示全部楼层
firstma 发表于 2020-6-22 15:27
300263股票的开盘价,最高价,最低价,收盘价,时间范围:年初至五月底

你是想设置横坐标日期显示是么?candle后面补一句set(gca,'XTickLabel', data2);
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


14

主题

44

帖子

0

最佳答案
 楼主| 发表于 2020-6-22 19:36:12 | 显示全部楼层
帕拉代斯 发表于 2020-6-22 16:03
你是想设置横坐标日期显示是么?candle后面补一句set(gca,'XTickLabel', data2);

对,我确实设置横坐标日期显示,不知道你那边运行情况如何。我按照你说的,日期确实出现了,但是时间范围不对
回复此楼 已获打赏: 0 积分

举报

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

本版积分规则

关闭

站长推荐上一条 /4 下一条

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