需要把txt中的数据以列向量的形式保存到excel表格中。
Txt中的数据如下
观察数据特点,一共有4行,9列,其中第4行只有6个数据
生成文件
需要转换成列向量,保存在excel表格中,生成excel文件如下
选择“编辑”->“替换”,
“查找内容”输入逗号,要根据文档中的格式输入英文逗号或者中文逗号,
“替换为”输入空格“ ”
点击“全部替换”
替换结果为
再删去标题文字,成为全部数据的文本
因为以每行固定个数读取数据更方便,所以要固定,比如该文档固定每一行读取9个整数,一共读取4行。
那么,由于最后一行只有6个数据,需要凑齐9个,所以在第4行的末尾增加三个数 “0 0 0”,注意输入的是,0空格0空格0
%% 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的效果
数据处理技巧(7):MATLAB 读取数字字符串混杂的文本文件txt中的数据
数据处理技巧(5):MATLAB 读取txt中的数据