我有一个多年火车票价的数据集-我的代码要求用户输入2004年和2022年之间的年份。代码应该显示数据集中该年份的3个值,但是出现了一个错误。我如何使用用户的输入来确定要显示哪些工作表数据呢?我使用的代码如下所示:
year = input('please select year between 2004 and 2022');
fprintf('you have chosen to see train fares from all sectors in %4.0f',year)
data = readmatrix("train_fares.xlsx",'sheet',year,'range','A1:A3')
我试过改变代码来显示一个特定的年份,而不是变量'year',这返回的数据只是不是什么是由用户选择的。This is how my excel spreadsheet is spread out我收到的错误消息说:使用readmatrix时出错此上下文中不支持“XLSX”格式。在安装了Excel的Windows上将“UseExcel”参数设置为true,以读写“XLSB”或“ODS”文件以及具有交互功能(如公式和宏)的电子表格。
plot_data(第4行)数据=读取矩阵(“train_fares.xlsx”,“工作表”,年份,“范围”,“A1:A3”)中出错
2条答案
按热度按时间nfs0ujit1#
您正在使用此
根据
input
的docs,它将被计算,因此类似于被MATLAB解释为数值输入
2022
您需要为
input
提供's'
说明符,这将阻止对输入的求值并将其保留为char。这是一个无效输入,因为
'sheet'
输入应为字符。"所以你的第一行应该变成"
ht4b089n2#
Wolfie的答案是正确的,如果您需要更大的灵活性(例如,如果您想参数化行和列),我将以此为基础进行构建。
如果您有一个新的数据库,那么您就可以使用这个数据库了。评估(命令)
在此执行中,year、row和column都是整数(double),sprintf命令形成了可以使用eval()执行的命令字符串