• Регистрация
downshifta
downshifta 0.00
н/д

Запись в файл

10.07.2019

Здравствуйте еще раз! Также имеется вопрос про запись файлов. Результатом работы моих программ является одномерный массив array = [E D sum s k]. Первые 2 значения double, последние 3 int. Из каждой программы этот массив я записываю в файл, сохраняя предыдущие записи. Нужно, чтобы запись шла в столбец, причем после каждого числа ставилась разделительная запятая.
Приведу пример. Есть массив [1.0 2.0 1 2 3]
В файл должно записаться в виде:
1.0 ,
2.0 ,
1 ,
2 ,
3 ,
В строку писать с сохранением данных научился, ниже прикреплю реализацию. Пробую в столбец, используя sscanf для транспонированного массива - все равно пишет в строку. Использую dlmwrite - затирает уже записанное. 


Помогите пожалуйста разобрать, что я делаю не так. Заранее спасибо.

nnarray = [ E D nn s k];
fileID = fopen('C:\Users\Александр\Desktop\report0sigma.txt','a+');
formatSpec = '%.2f %.2f %d %d %d';
fprintf(fileID, formatSpec, nnarray);
fprintf(fileID, '\n');
fclose(fileID);

Теги

      10.07.2019

      Ответы

      • Павел Рословец
        Павел Рословец +239.28
        10.07.2019 12:53

        Добрый день!

        Нужно правильно задать текстовую маску formatSpec, сейчас значения в ней просто перечисляются через пробел, это вы и получаете в файле.

        В вашем случае нужно что-то типа такого:

        formatSpec = '%.2f, \n%.2f, \n%d, \n%d, \n%d, ';

        где \n означает переход на следующую строку.

        • Alexey_K
          Alexey_K+12.00
          22.07.2019 04:26