2015-03-11 2 views
0

я определяю некоторые переменные на основе графического интерфейса входов, например, так:Ввести изменение числа в переменную в matlab?

day1name=get(handles.day1name,'String'); 
day1start = datenum(get(handles.day1start,'String')); 
day1end = datenum(get(handles.day1end,'String')); 
day1data =Data(day1start:day1end,:); 
day1datamodified = day1data*xyz 

где day1datamodified является NxN двойного массива.

В принципе, я хочу сделать это в течение нескольких дней и нескольких разных записей. кроме копирования, вставляя это за мои 15 дней и делая 15 разных переменных. есть способ сделать day1start сказать day2start, вроде как день (i) начать, где i = 1: 15? затем постройте более массивный массив с небольшими массивами данных в нем за каждый день, который помечен знаком day1name, который я могу затем манипулировать и рисовать в моем сердце? Я могу, вероятно, использовать для этого сценарий для цикла, но как мне вставить переменную в мои переменные?

Редактировать: Данные - это большой файл excel, который я импортировал, который имеет столбцы времени, из которых я беру куски данных с начальным/конечным временем дня.

ответ

0

А как насчет ссылки на динамическое поле в структуре, содержащей все переменные за каждый день? Назовем структуру Day.

Для каждого типа данных (имя, начало, конец ...) используйте sprintf, чтобы создать строку для ссылки на правый элемент структуры handles.

Например, когда k = 1:

DayName = day1name 

и как таковой на линии сразу же после того, как вы получите String свойство handles.day1name и так далее для каждой переменной, на каждый день.

for k = 1:15 

DayName = sprintf('day%iname',k); 
Day(k).name=get(handles.(DayName),'String'); %// The() are important here! 

DayStart = sprintf('day%istart',k); 
Day(k).start = datenum(get(handles.(DayStart),'String')); 

DayEnd = sprintf('day%iend',k); 
Day(k).end = datenum(get(handles.(DayEnd),'String')); 

Day(k).data = Data(Day(k).start:Day(k).end,:); 

Day(k).datamodified = Day(k).data*xyz 


end 

Надеюсь, мои объяснения были достаточно ясными!

+0

Я дам ему шанс! я не был уверен, как вставить эту переменную, но выглядит, как это работает, spkint sprintf. – excelhelp

+0

Хорошо, я буду ждать ваших отзывов :) –

+0

это работает! как я могу назвать большой массив данных, который находится внутри структуры, чтобы я мог его построить, найти min max и т. д.? день (k) .datamodified array. – excelhelp

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