将 xlsm 文件读入 MATLAB |错误文件名必须是字符串
Reading in xlsm file into MATLAB | Error file name must be string
我正在尝试通过国家和年份的嵌套循环从 WIOD(世界输入输出数据库)中读取一整套环境数据 input/output。现在我已经为 base/data 帐户做了类似的事情。现在我尝试加载环境数据。我以前的工作代码如下所示:
for yr = 95:99
V(:,:,yr-94) = xlsread(['wiot' num2str(yr) '_row_apr12.xlsx'],['WIOT_19'
num2str(yr)],'E1443:BCI1448');
end
现在我的代码无法使用错误消息 "File name must be a character vector." 如下所示:
country =
{'AUS','AUT','BEL','BGR','BRA','CAN','CHN','CYP','CZE','DEU','DNK','ESP',...
'EST','FIN','FRA','GBR','GRC','HUN','IDN','IND','IRL','ITA','JPN','KOR',...
'LTU','LUX','LVA','MEX','MLT','NLD','POL','PRT','ROU','RUS','SVK','SVN',...
'SWE','TUR','TWN','USA','ROW'}
for c = 1:41
for year = 1995:1995
F_NRG(:,(c*35)-34:(c*35),year-1994) = transpose(xlsread([country(c)
'_EU_May12.xlsm'],[num2str(year)],'AD2:AD36'));
end
end
我不明白,因为如果我通过 country(c)
select 国家 c
,文件名应该是一个字符串? xlsread
嵌套在转置命令中,我要保存读入数据的单元格的计算稍微复杂一些,但原则上应该相同?以下代码也确实为每个 c
呈现一个字符串。
for c = 1:41
country(c)
end
你能帮我找出我的编码错误吗?为什么 Matlab 不能将文件名识别为字符串?
感谢您的帮助。
试试这个,
for c = 1:41
for year = 1995:1995
F_NRG(:,(c*35)-34:(c*35),year-1994) = transpose(xlsread([country{c}
'_EU_May12.xlsm'],[num2str(year)],'AD2:AD36'));
end
end
我正在尝试通过国家和年份的嵌套循环从 WIOD(世界输入输出数据库)中读取一整套环境数据 input/output。现在我已经为 base/data 帐户做了类似的事情。现在我尝试加载环境数据。我以前的工作代码如下所示:
for yr = 95:99
V(:,:,yr-94) = xlsread(['wiot' num2str(yr) '_row_apr12.xlsx'],['WIOT_19'
num2str(yr)],'E1443:BCI1448');
end
现在我的代码无法使用错误消息 "File name must be a character vector." 如下所示:
country =
{'AUS','AUT','BEL','BGR','BRA','CAN','CHN','CYP','CZE','DEU','DNK','ESP',...
'EST','FIN','FRA','GBR','GRC','HUN','IDN','IND','IRL','ITA','JPN','KOR',...
'LTU','LUX','LVA','MEX','MLT','NLD','POL','PRT','ROU','RUS','SVK','SVN',...
'SWE','TUR','TWN','USA','ROW'}
for c = 1:41
for year = 1995:1995
F_NRG(:,(c*35)-34:(c*35),year-1994) = transpose(xlsread([country(c)
'_EU_May12.xlsm'],[num2str(year)],'AD2:AD36'));
end
end
我不明白,因为如果我通过 country(c)
select 国家 c
,文件名应该是一个字符串? xlsread
嵌套在转置命令中,我要保存读入数据的单元格的计算稍微复杂一些,但原则上应该相同?以下代码也确实为每个 c
呈现一个字符串。
for c = 1:41
country(c)
end
你能帮我找出我的编码错误吗?为什么 Matlab 不能将文件名识别为字符串?
感谢您的帮助。
试试这个,
for c = 1:41
for year = 1995:1995
F_NRG(:,(c*35)-34:(c*35),year-1994) = transpose(xlsread([country{c}
'_EU_May12.xlsm'],[num2str(year)],'AD2:AD36'));
end
end