2014-10-02 3 views
0

Я хочу иметь матрицу/ячейку, в которой есть строки, внутри которых я могу получить доступ и использовать их позже как строки.Как сохранить строки в матрицах в matlab

Например, у меня есть одна переменная (MyVar) и одну ячейку (site) с именами внутри:

MyVar=-9999; 
site={'New_York'; 'Lisbon'; 'Sydney'}; 

Тогда я хочу сделать что-то вроде:

SitePosition=strcat(site{1},'_101'} 

, а затем сделать это

save(sprintf('SitePosition%d',MyVar),); 

Это не работает! Есть ли способ иметь строки в матрице и обращаться к ним, чтобы работать с ними, если они были строкой?

ответ

0

Это:

MyVar=-9999; site={'New_York'; 'Lisbon'; 'Sydney'}; 
SitePosition = strcat(site{1},'_101'); 
save(sprintf('SitePosition%d',MyVar)); 

отлично работает и дает SitePosition-9999.mat, отметить изменения синтаксиса в строках 2 и 3.

Есть ли что-то еще вы ожидали?

EDIT: Основываясь на ваш комментарий

Ознакомьтесь с документацией для save относительно экономии конкретных переменных

Новый пример:

MyVar=-9999; 
site={'New_York'; 'Lisbon'; 'Sydney'}; 
SitePosition = strcat(site{1},'_101'); 
save(SitePosition,'MyVar'); 

Создает New_York_101.mat с в нем только переменной MyVar.

+0

Извините, мой пример был глупым. Я просто понял, после запуска кода ... То, что я представил, нехорошо выражать мою проблему. Но «kmoe», спасибо за ваш комментарий. Я действительно хочу сделать это, имея «SitePosition» в качестве переменной, поэтому результатом в конце будет: «NewYork_101.mat» со значением -9999, хранящимся внутри него; «Lisbon_101.mat», с сохраненным в нем значением -9999; «Sydney_101.mat», с сохраненным в нем значением -9999; –

+0

@JohnazGrynn конечно, см. Мое редактирование – excaza

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