标记轴。从Excel转换。将数据转换为String

时间:2014-03-19 16:36:48

标签: excel matlab graph axis-labels

如何绘制A对B图,其中A和B是Excel中的列,例如

A   
Red
Green
Blue

B
1:00 AM
2:00 AM
3:00 AM

对于我使用的3 * 3图表

set(gca,'XTick',1:3);
set(gca,'XTickLabel',{'Red','Green','Blue'});
set(gca,'YTick',1:3);
set(gca,'YTickLabel',{'1:00 AM','2:00 AM','3:00 AM'});

然而手动输入1000 * 1000将是一团糟。

所以我的问题是: 如何将A栏中的红绿蓝值转换为{'Red','Green','Blue'}? (为了在set(gca,'XTickLabel'...)

中使用它们

我尝试使用

 color = xlsread(fileName, 'A1:A3');

但它没有将数据转换为正确的格式。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

xlsread第二个输出参数包含文本数据。第一个只包含数字:

>> [nums,colors,raw] = xlsread('colorData.xlsx','A1:A3');
>> colors
colors = 
    'Red'
    'Green'
    'Blue'

更新:xlsread读取的时间采用Excel的序列日期格式(数字表示)。可以使用datestr将它们转换为时间字符串。

>> nums
nums =
    0.0417
    0.0833
    0.1250
>> datestr(nums)
ans =
 1:00 AM
 2:00 AM
 3:00 AM

这些实际上是日期,使用Jan. 1 1900 as time zero。所以,但只给出一个时间,这是假设这一天的数字。但是,MATLAB使用Jan-1-0000,因此如果您有日期和时间,请使用datestr(t + datenum('30-Dec-1899'))进行转换,其中t是带序列日期编号的数值。