readtable函数导入.csv文件技巧

在使用readtable函数导入.csv文件时,默认是以逗号为分隔符来分隔各列,我发现如果某个单元格里含有逗号,则会在逗号位置断开,形成两列,这样导入完成后有各列错位的问题发生。我摸索了一种方法,就是把工具栏里“导入数据”工具自动生成的代码,进行适当修改,就能避免因单元格内部内容里有逗号导致各列错位问题。原理不清楚,重在好用,如果大家也遇到类似问题,可以参考。对了,记得手动将第一行数据里的逗号删掉。

主程序:

table_tem1=readtable('数据.csv','Delimiter',",");
v_t = repmat("%s",1,size(table_tem1,2));  %都按字符串数组类型读入
lujing='数据.csv';
num=size(table_tem1,2);
table_tem1=daorutable(v_t,lujing,num);
%这样第一行也能作为内容读入,刚好可以把它附给列名,
% 然后把第一行删掉即可
table_tem1.Properties.VariableNames=string(table2cell(table_tem1(1,:)));
table_tem1(1,:)=[];
% table_tem1即为最终我们导入的table

自定义导入函数:

function y=daorutable(v_t,lujing,num)
%v_t为多个"%s",使得各列都按字符串数组类型读入
%lujing为要读入文件的路径
%num为数据一共有几列
% Set up the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", num);
% 指定范围和分隔符
opts.DataLines = [1, Inf];
opts.Delimiter = ",";
% 指定列名称和类型
opts.VariableTypes = v_t;
% 指定文件级属性
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
% 导入数据
y = readtable(lujing, opts);
end
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值