function[]=exTextFile() for i=1:3 for j=1:3 A(i,j)=input(strcat('A(',int2str(i),',',int2str(j),')=')); end end f=fopen('exTextFile_1.txt','wt'); fprintf(f,'first matrix \n'); for i=1:3 for j=1:3 fprintf(f,'%f\t',A(i,j)); end fprintf(f,'\n'); end for i=1:3 for j=1:3 A(i,j)=A(i,j)^2; end end fprintf(f,'next matrix \n'); for i=1:3 for j=1:3 fprintf(f,'%f\t',A(i,j)); end fprintf(f,'\n'); end fclose(f); end | Текстовыми файлами называются файлы из символов (текста). Они состоят из строк, оканчивающихся символом «конец строки». Он записывается в тексте программы, вводящей текст в файл, как \n. Для введения элементов символьной строки в текст файла используется команда fprintf. Для создания промежутков между данными в тексте записываемого файла используется знак табуляции. Он записывается в тексте программы, вводящей текст в файл, как \t. В конце файла стоит символ «конец файла». Он ставится автоматически командой, закрывающей операции с фалом fclose(f), где в скобках указано имя переменной f, которая связана с файлом. |
Файл имеет расширение .txt. Двоичные файлы содержат информацию в виде последовательностей двоичных символов заданной длины. Имеют расширение .dat.
|
|
Для открытия текстового файла используется команда f=fopen('exTextFile_1.txt','wt'); где f имя переменной которая будет изображать открытый файл в тексте программы. exTextFile_1.txt это имя файла с расширением .txt который будет открыт. Если он не существовал раньше то он будет создан (без какого-либо содержащегося в нем текста). wt означает что файл вновь создаваемый, текстовый, пустой и открыт только для записи.
Команда fprintf(f,'first matrix \n'); означает что в упомянутый файл f будет помещена (записана) строка указанная в кавычках. Ее завершает символ конца строки \n.
Команда fprintf(f,'%f\t',A(i,j)); записывает в файл очередной элемент массива A(i,j). Указанное в кавычках %f означает что элемент массива будет записан как число со знаком, с шестью знаками после запятой (а если бы было %d то было бы целое число со знаком; %с символ; %s строка символов; %g число со знаком и указанием порядка). Указанное там же \t означает что перед элементом массива будет вставлена табуляция (то есть перед ним будет широкий пробел).
Команда fprintf(f,'\n'); означает что будет вставлен символ конца строки и произойдет переход на следующую строку.
Команда fclose(f); закрывает файл f. Она необходима. Каждый использованный (открытый) файл необходимо закрыть (закончить работу с ним). На рис.1.23 показано содержимое Command Window при вызове функции exTextFile и последующем вводе данных в командной строке. Рядом показано содержимое файла, созданного в результате работы этой функции.
A(1,1)=1 A(1,1)=2 A(1,1)=3 A(1,1)=4 A(1,1)=5 A(1,1)=6 A(1,1)=7 A(1,1)=8 A(1,1)=9 |
Рис.1.23. Слева) Command Window при вызове функции exTextFile и последующем вводе данных в командной строке. Справа) содержимое текстового файла, созданного в результате работы этой функции и открытого в окне Current Directory щелчком мыши.