2015-05-15 3 views
0

Я новичок в MATLAB. В настоящее время я сохраняю файл с использованием,Как выбрать строки из матрицы

eval(['save(''results/loc_', num2str(location) ,''',''values'')']); 

У меня 54 местоположения. Поэтому в этом случае я сохраню 54 файла с именем loc_1, loc_2 ... loc_54 в новой папке с именем «results». Размер каждого файла равен 15x7. В этом случае количество столбцов всегда будет оставаться неизменным. Но количество строк изменится. Если я возьму только одно испытание, то «loc_1» будет давать только значения 3x7. Если я возьму 2 испытания, тогда «loc_1» даст значения 6x7 и так далее. В моем случае я хочу взять «пробку» в качестве переменной, а ее значение равно 5. Таким образом, каждый файл с именем loc_1, loc_2, .., loc_54 даст мне значения 15x7.

Теперь я хочу отделить первые 5 строк (и все 7 столбцов) от loc_1 и сохранить их в 3 разных файлах, а размер каждого файла будет 5x7. Аналогичным образом мне придется сохранить все файлы loc_numstr (location) (всего 54 файла) и разделить их следующим образом. Тогда у меня будет 3 набора из 54 файлов каждого размера как 5x7. В этом случае я принимаю 5 испытаний, поэтому я разделяю 5x7 как размер каждого файла. Аналогично для 4 испытаний мне нужно рассмотреть 4x7 и так далее.

Любая помощь будет оценена по достоинству. Благодарю.

Думаю, я сделал это немного сложнее. Можете ли вы объяснить мне этот пример, пожалуйста?

Я хочу спросить, есть ли у меня матрица, например: a = [1 2 3; 1 3 4; 4 5 7; 9 10 12; 13 16 18; 22 26 29]

и как взять первые 2 строки и сохранить их в другом файле, затем следующие 2 строки и сохранить их в другом файле и следующих 2 строках и сохранить их в другом файле?

Например, я хочу хранить b = [1 2 3; 1 3 4], c = [4 5 7; 9 10 12] и d = [13 16 18; 22 26 29]

благодаря

+0

Почему вы используете 'eval'? Почему бы просто не сохранить (['results/loc_', num2str (location)], значения) '? Также ваш вопрос чрезвычайно трудно понять. Что такое 'значения'? – Dan

+1

Я, честно говоря, совсем не могу следовать тому, что вы пытаетесь сделать. Чтобы ответить на явный вопрос, см. Документацию MATLAB [матричное индексирование] (http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html). Также нет необходимости использовать 'eval' здесь. Используйте ['sprintf'] (http://www.mathworks.com/help/matlab/ref/sprintf.html) или [' strcat'] (http://www.mathworks.com/help/matlab/ref/ strcat.html), чтобы сгенерировать ваше имя файла. – excaza

+0

Я пытался использовать save, но мне было трудно использовать это. Да, я думаю, я сделал это немного сложнее. Можете ли вы объяснить мне этот пример, пожалуйста? Я приведу пример, сделав редактирование на мой вопрос. – Chris33

ответ

0

Для примера, вы можете просто использовать массив нарезку,

a=[1 2 3 ; 1 3 4 ; 4 5 7 ; 9 10 12 ; 13 16 18 ; 22 26 29] 
for n = 1:3 
    %Indices for matrix section 
    j = 2*n; i = j-1; 
    %Get matrix section to save 
    b = a(i:j,:) 
    save(['results/loc_',num2str(n)], 'b') 
end 

Я не уверен, сохранить то, что вы хотите - это сохраняет переменное рабочее пространство MATLAB. Вы хотели бы написать номера, чтобы их можно было прочитать другой программой?

+0

Пожалуйста, игнорируйте «save». Я использую много файлов для создания окончательного результата. Затем я использую функцию eval для сохранения результата. Сейчас у меня 54 результата. Файлы называются loc_1, loc_2, .. loc_54. Размер каждого файла равен 15x7. Я хочу отделить строки от файла результата. Например, loc_1 имеет размер 15x7. Теперь я хочу сохранить первые 5 строк (матрица 5x7) в loc_test1_1, затем следующие 5 строк как (еще одна матрица 5x7) loc_test2_1, а затем следующие 5 строк (другая матрица 5x7) как loc_test3_1. Таким образом, у нас будет 3 новых набора из файла loc_1.Здесь у нас есть 54 файла от loc_1 до loc_54 – Chris33

+0

Я не уверен, почему вы сохраняете значения в файлах и (я полагаю) перезаряжаю между операциями. Обычно запись на диск очень неэффективна и должна выполняться только для сохранения требуемых значений между сеансами Matlab. Если я понимаю, что вы хотите сделать дальше, это будет использовать тот же подход, что и выше, но с разными именами файлов и индексами ... –

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

  • Нет связанных вопросов^_^