2016-01-20 5 views
0

Я пытаюсь загрузить файлы ascii в Matlab, которые содержат 1020 строк и два столбца спектральных данных. Когда я использую dlmread, как показано ниже, Matlab превращает это в матрицу N, которая является то, что я хочу:Команда dlmread

N = dlmread('alummatrix.asc') 

Однако, я хочу, чтобы читать только первые 80 строк данных и игнорировать остальные, а затем сделать это для всех файлов .asc в каталоге. Кроме того, я хочу, чтобы десятичное число не менялось или округлялось. Он выводит мои данные на 5 десятичных цифр слева от исходных данных. Кроме того, я хотел бы, чтобы сохранить свою первоначальную запись, а не округлять:

Это дает мне:

N = 
    1.0e+05 * 
    0.0384 0.3374 

Когда я просто хочу, чтобы показать, как:

N = 
    3838  33738 
+0

Ваша проблема связана с тем, как MATLAB форматирует номера для вывода. Дублированная ссылка должна помочь вам решить эту проблему. 'tl; dr' - В командной строке введите' format long g; ', затем повторите попытку кода. – rayryeng

+0

Спасибо! Это сработало. Но как мне заставить его читать только первые 80 строк данных и игнорировать остальные? А затем сделайте это для всех файлов ascii в каталоге, сохраняя их как другое имя матрицы? – Svet

+0

(1) Для 'dlmread', это возможно, но вам нужно знать, сколько столбцов есть в каждом файле. Если вы этого не знаете или у вас есть переменное количество столбцов в каждом файле, у вас нет выбора, кроме как прочитать всю матрицу, а затем удалить строки, которые вам не нужны. (2) Выполнение этого для нескольких файлов не было включено в ваш исходный вопрос. Пожалуйста, отредактируйте свой вопрос, чтобы уточнить все, что вы хотите решить, и я снова открою. – rayryeng

ответ

0

использования эта строка кода:

N = dlmread ('alummatrix.asc', '', [0 0 80 0]);

Удачи вам!

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