Функции для записи матриц в файл и чтения матриц из файла

Функция dlmread считывает числовые данные из текстового файла в матрицу А.

Функция dlmwrite записывает матрицу в текстовый файл.

Команда dlmwrite('dlm1.txt',A) записывает матрицу А в файл dlm.txt и ставит запятые после элементов матрицы.

Команда type('dlm1.txt') показывает содержимое текстового файла dlm.txt в окне Command Window.

Команда dlmwrite('dlm2.txt',A,'#') не только записывает матрицу А в файл, но и добавляет между элементами матрицы разделитель. Разделитель можно указать почти любой.

function[]=dlmwrite1()   

for i=1:3

for j=1:3

A(i,j)=input(strcat('A(',int2str(i),',',int2str(j),')='));

end

end

dlmwrite('dlm1.txt',A)

type('dlm1.txt')   

end

function Start_dlmwrite1()

dlmwrite1()

end

A(1,1)=1 A(1,2)=2 A(1,3)=3 A(2,1)=4 A(2,2)=5 A(2,3)=6 A(3,1)=7 A(3,2)=8 A(3,3)=9   1,2,3 4,5,6 7,8,9

Функция dlmwrite2 демонстрирует применение команды dlmwrite('dlm2.txt',A,'#'). В результате между числами (элементами матрицы А) при выводе на экран будет поставлен разделитель решетка #.

function[]=dlmwrite2()   

for i=1:3

   for j=1:3

A(i,j)=input(strcat('A(',int2str(i),',',int2str(j),')='));

   end

end

dlmwrite('dlm2.txt',A,'#')

type('dlm2.txt')   

end

function Start_dlmwrite2()

dlmwrite2()

end

 

A(1,1)=1 A(1,2)=2 A(1,3)=3 A(2,1)=4 A(2,2)=5 A(2,3)=6 A(3,1)=7 A(3,2)=8 A(3,3)=9   1#2#3 4#5#6 7#8#9

Команда dlmwrite('dlm3.txt',A,'#',2,2) записывает не всю матрицу, а начиная с указанной строки и столбца. На месте пропущенных элементов (строк и столбцов) остаются разделители.

Функция dlmwrite3 демонстрирует применение команды dlmwrite('dlm3.txt',A,'#',2,2). В результате матрица А имеет пустые две строки сначала (первую и вторую) и два пустых столбца. Таким образом, матрица фактически имеет пять строк и пять столбцов, но при этом введенные элементы расположены как массив «три на три».

function[]=dlmwrite3()   

for i=1:3

   for j=1:3

A(i,j)=input(strcat('A(',int2str(i),',',int2str(j),')='));

   end

end

dlmwrite('dlm3.txt',A,'#',2,2)

type('dlm3.txt')   

end

function Start_dlmwrite3()

dlmwrite3()   

end

 

A(1,1)=1

A(1,2)=2

A(1,3)=3

A(2,1)=4

A(2,2)=5

A(2,3)=6

A(3,1)=7

A(3,2)=8

A(3,3)=9

 

####

####

##1#2#3

##4#5#6

##7#8#9

A = 5 6 8 9

Команда A=dlmread('dlm2.txt','#',1,1) считывает матрицу из указанного текстового файла, начина с второй строки и второго столбца (указанные номера строки и столбца 1, 1 на самом деле означают 2 строку и 2 столбец, так как нумерация в этой команде идет с нуля). При этом команда предупреждена о наличии между считываемыми элементами разделителя # и не затрудняется из-за его наличия.

A =

1 2 3 0

4 5 6 0

7 8 9 0

1 4 9 0

16 25 36 0

49 64 81 0

Команда A=dlmread('exTextFile_3.txt') считывает матрицу квадратную, и если до квадратной не хватает, то добавляет строки или столбцы из нулей.

A =

1 2 3

4 5 6

7 8 9

Команда A=dlmread('dlm1.txt',',') считывает, зная о наличии разделителя между элементами матрицы.

A = 1 2 4 5

Команда A=dlmread('dlm1.txt',',',[0 0 1 1]) считывает, зная о разделителе, элементы начиная с 0-й строки и 0-го столбца и до 1-й строки и 1-го столбца при нумерации с нуля.

         

Рис.1.24 показывает содержимое текстовых файлов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: