したがって、次のことができますが、動的に変数に名前を付けて使用することeval
はお勧めできません。
my_command_string = [chosenTabs{i},'=readtable(inputFile,''Sheet'',chosenTabs{i})'];
eval(my_command_string);
私がコーディングしていた場合:
私はおそらくそれを書き出すだけです(トンがない限り...):
tab_Screen = readtable(inputFile,'Sheet','Screen');
tab_SectorAbsolute = readtable(inputFile,'Sheet','SectorAbsolute');
そして、トンとトンがあれば...
この回答で提案されている構造体の利用は、exxaza によって非常に滑らかに見えます。他のいくつかの方法は次のとおりです。
方法 1:
n_chosenTabs = length(chosenTabs);
chosenTabs_data = cell(n_chosenTabs, 1);
for i=1:n_chosenTabs
chosenTabs_data{i} = readtable(inputFile,'Sheet',chosenTabs{i});
end
方法 2:
container.Mapを使用して、タブ名から実際のテーブルに移動することもできます。次を使用してマップをロードします。
tab_map = containers.Map;
for i=1:n_chosenTabs
tab_map(chosenTabs{i}) = readtable(inputFile,'Sheet',chosenTabs{i});
end
そして、次のような方法で個々のテーブルにアクセスできます。
local_copy_of_sector = tab_map('Sector');
local_copy_of_sector
ただし、変更しても、コンテナーに格納されているコピーは変更されないことに注意してください。