数据处理技巧(8):MATLAB读取txt文本数据并转换成列向量

1. 目标:

需要把txt中的数据以列向量的形式保存到excel表格中。

Txt中的数据如下

观察数据特点,一共有4行,9列,其中第4行只有6个数据
在这里插入图片描述

生成文件
需要转换成列向量,保存在excel表格中,生成excel文件如下

2. 处理步骤

① 将逗号替换成空格

选择“编辑”->“替换”,
“查找内容”输入逗号,要根据文档中的格式输入英文逗号或者中文逗号,
“替换为”输入空格“ ”
点击“全部替换”
在这里插入图片描述
替换结果为
在这里插入图片描述
再删去标题文字,成为全部数据的文本
在这里插入图片描述

②补齐数据

因为以每行固定个数读取数据更方便,所以要固定,比如该文档固定每一行读取9个整数,一共读取4行。
那么,由于最后一行只有6个数据,需要凑齐9个,所以在第4行的末尾增加三个数 “0 0 0”,注意输入的是,0空格0空格0
在这里插入图片描述

③ MATLAB程序

在这里插入图片描述

%% test221028.txt
% 先把txt中,所有的英文式","替换成空格" "
% 然后修改参数,补齐固定行,固定列,再运行
% 读取结点坐标,保存在 NodeCoor 数组当中,共4行9列
clear;
filename = 'test221028.txt'; % 记录文件路径
fileID = fopen(filename);   % 打开该路径文件
CellInput = textscan(fileID,'%d %d %d %d %d %d %d %d %d');  % 按照设置的格式,每行9个整数,读取列
fclose(fileID); % 关闭该路径文件

row = 4;    %行数
col = 9;    %列数
NodeCoor = zeros(row,col);   % 创建一个数组,用来存储坐标
for i_cycle = 1:col  %1:列数
    NodeInfo = CellInput(1,i_cycle);           % 将cell中的第2~4列,也就是所有点的索引提取出来
    NodeCoor(:,i_cycle) = cell2mat(NodeInfo);  % 赋值给数组
end
NodeCoor2 = zeros(row*col,1); % 全部转为一列
for i=1:row
    for j = 1:col
        index2 = (i-1)*col+j;
        NodeCoor2(index2)=NodeCoor(i,j);
    end
end
save 'test221028.mat' NodeCoor2;
clear; % 保存后清空工作区

④运行查看结果

点击运行 ,在当前文件夹一栏,可以看到生成的“test221028.mat“文件,双击打开
在这里插入图片描述
在这里插入图片描述
命令输出行显示已加载该文件
在这里插入图片描述
就可以看到变成列向量的数据了,最后补齐的三个0可以给它删除,然后新建一个excel表格,将mat的列向量复制进去即可。
左图,mat列向量。右图复制到excel的效果
在这里插入图片描述在这里插入图片描述

3. 相关链接

数据处理技巧(7):MATLAB 读取数字字符串混杂的文本文件txt中的数据
数据处理技巧(5):MATLAB 读取txt中的数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值