Пример в вашем вопросе довольно неясен, потому что вы спрашиваете о сохранении данных, но все ваши инструкции по открытию файла используют только чтение разрешений.
Я дамВы пример, который подходит для вашего 2-го (более короткого) примера, потому что он более понятен, чего вы пытаетесь достичь.
Я настоятельно рекомендую прочитать документацию для:
fopen
и, в частности, использование параметра permission
. fprintf
параметр formatSpec
будет полезен.
Вооружившись этой документацией, вы поймете, что запись в существующий файл, уже содержащий данные, называется добавление к файлу.Так что для вашего использования: при первом создании файла откройте его с разрешением 'w'
.Все остальное время вы хотите добавить (= append ) что-то в файл, открыть его с разрешением 'a'
, а затем написать в него нормально.
Ваш второй пример в коде:
%% Initial data
A = [1,2,3;4,5,6];
%% prepare format specifier for a complete line
nElem = numel(A) ;
baseformat = '%d ' ; % base number format
writeFormat = repmat( baseformat , 1 , nElem ) ; % replicated "nElem" times
writeFormat = [writeFormat(1:end-1) '\n'] ; % remove last trailing space and replace by newline
% => now writeFormat = "%d %d %d %d %d %d\n"
%% Open the file the first time to write the first line
% permission 'w' => Open or create new file for writing. Discard existing contents, if any.
fidout = fopen('myfileout.txt', 'w') ;
fprintf( fidout , writeFormat , A(:) ) ;
fclose(fidout) ;
%% Now let's write 5 additional lines
for iLine=1:5
% simulate a different matrix [A]
A = A + nElem ; % A will continue counting
% permission 'a' => Open or create new file for writing. Append data to the end of the file.
fidout = fopen('myfileout.txt', 'a') ;
fprintf( fidout , writeFormat , A(:) ) ;
fclose(fidout) ;
end
, который должен дать вам файл myfileout.txt
, содержащий:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36