2015-05-05 5 views
0

Я хочу присвоить номер переменной, так что имя этой переменной является компонентом массива i с именами переменных. Ниже приведен код , который я хочу запустить, но я не могу.MATLAB: имена переменных из массива

varname = {'test1','test2'}; 
rangenameraw = {'A','B','C'}; 
rangenamecolstart = {'1','11'}; 
rangenameend = {'10', '20'}; 
for i = 1:1:length(varname) 
     varname(i) =xlsread(filename, strcat(rangenameraw,rangenamecolstart,':'rangenameraw,rangenameend); 
end 

ответ

0

Насколько я понимаю, вы хотите создать переменные динамически, которые могут быть достигнуты с помощью assignin функции MATLAB.

for i = 1:1:length(varname) 
     assignin('base', varname{i}, xlsread(filename, strcat(rangenameraw,rangenamecolstart,':'rangenameraw,rangenameend)); 
end 
+0

Спасибо, не могли бы вы объяснить, почему «база»? – Tom

+0

@Tom ... 'base' означает, что объем созданной переменной является основным рабочим пространством MATLAB. Кроме того, вы можете указать 'caller', что означает, что переменная будет локальной для функции, которая вызывает' assignin'. Проверьте описание 'assignin' в документации MATLAB. – sgarizvi

+0

спасибо. Вы поете «основание» кажется самым безопасным. Поэтому я буду придерживаться этого. Большое спасибо! – Tom

Смежные вопросы