Matlab 对 字符型 txt 文件的读写

1. Matlab读取txt文件

fruits.txt文件内容如下,主要是一列字符型单词:

apple
pear
watermelon
orange
banana

1.1. 用fopen和textscan读取

fid = fopen('fruits.txt','r');
A = textscan(fid,'%s');
fclose(fid)

得到的A是一个大小为5×1的元胞数组(cell array),fopen第二个参数对应相应的操作,r: read, w: write, a: add 等。

1.2. 用importdata读取

A = importdata('fruits.txt');

这种方法写起来就比较简单了,同样,得到的A也是一个大小为5×1的元胞数组。

B = A(i);  % 得到的B会是一个1×1的cell array

B = A{i}; % 得到的B是一个char类型的值,大小由单词长度决定

2. Matlab 写 txt

2.1. dlmwrite方法

dlmwrite('fruit.txt', A, 'delimiter', '','precision', 6);

该方法需要先将元胞数组转化为矩阵。

元胞数组转化为矩阵可以用函数 cell2mat(A),但是用上面的数据直接转会报错:

串联的矩阵的维度不一致。

这是因为A中的数据是字符型的,每个单词的长度不一样,导致每一行的维度不一致,所以此处不适用。

2.2. fprintf方法

fileID = fopen('fruit.txt','a');  % w:write,覆盖原有内容  a:add,在原有内容后面增加
for i = 1:6
	fprintf(fileID, '%s\n', A{i});  % \n 换行
end
fclose(fileID);

fopen操作如果文件夹中没有该文件,就会新建。

此时如果用记事本直接打开fruit.txt,会看到所有单词都在同一行,应该是记事本没有识别换行符,但实际上fruit.txt中的元素是换行了的。可以用notepad++或者其他编程类的软件打开查看。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值