如何绘制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');
但它没有将数据转换为正确的格式。
感谢任何帮助。
答案 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
是带序列日期编号的数值。