%% 格式化文本的读操作
%只读形式打开txt文件
file_t =
fopen
(
'mytxt.txt'
,
'r'
);
%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行
A =
fscanf
(file_t,
'%d'
);
%关闭文件
fclose
(file_t);
%% 使用textscan读取多列数据
file_t =
fopen
(
'mytxt.txt'
,
'r'
);
%将原来的两列数据以数组原包(cell)的形式读取,cell共有两个元素
A = textscan(file_t,
'%d %d'
);
%C和上面A一样,D返回位置信息
[C,D] = textscan(file_t,
'%d %d'
);
fclose
(file_t);
A{1} %原包数据的第一个元素对应第一列
A{2}
C
D
%% textread函数读取,现在不常用
%这种形式将每一列分别给A,B
[A,B] = textread(
'mytxt.txt'
,
'%d %d'
);
A
B
%这种形式将txt文件排成一列赋给C
C = textread(
'mytxt.txt'
,
'%d'
);
C
%% 忽略标题
file_t =
fopen
(
'headline.txt'
,
'r'
);
%忽略掉第一行的标题信息
A = textscan(file_t,
'%d %d'
,
'HeaderLines'
,1);
A
%% 使用textscan扫描字符串中的数据
clc
str_1 =
'The number is 1 2 3 4 5'
;
%首先使用textscan获取第一个前14个字符
[str1,position1] = textscan(str_1,
'%14c'
,1);
str1{:}; %The number is
position1; %14
%获取字符串的长度
[temp1,temp2] = size(str_1);
%然后读取后面的数字字符串
str_2 = textscan(str_1(position1+1:temp2),
'%9c'
,1);
%将字符串转化为数值
num = str2num(str_2{1})
%% 格式化文本的写操作
%使用
fprintf
向文件中写入数据
%写形式打开文件,存在就打开,不存在新创建一个文件开始写
file_1 =
fopen
(
'text_w.txt'
,
'w'
);
%以数字形式写入数据
fprintf
(file_1,
'%d'
,1225);
%关闭文件,返回0表示关闭成功
fclose
(file_1);
%% 每写入一次换行或插入想要的字符
file_1 =
fopen
(
'text_w.txt'
,
'w'
);
%\r回车符 \n换行符 这里必须回车换行连用
fprintf
(file_1,
'%d\r\n'
,[32;34]);
%每写入一个数字,后加一个空格,多列按列输出
temp = randint(4,2);
fprintf
(file_1,
'%d '
,temp);
fclose
(file_1);
%%
fprintf
在命令空间输出
str_1 =
'Hello! World!'
;
%这里fid = 1;这时输出换行只需\n就行,%c为输出单个字符,%s为输出字符串
fprintf
(1,
'%c\n'
,str_1);
%% 扫描字符串2
clear
clc
str =
'1985 112 -10.53'
;
%将 替换为0
A = find(str == 32);
str(A) = 48;
%下面这这一句相当于+198501120-10.53
%不是你给的+19850112-010.53
str2num(str)