matlab中分号,使用分号分隔数据读取CSV,并在matlab中使用逗号作为十进制标记

EDIT3(接受的答案):使用主工具栏的变量部分中的导入数据按钮,可以自定义数据的导入方式.完成后,您可以单击箭头下方的导入选择,并生成将遵循导入数据窗口中定义的相同规则的脚本或函数.

————————————————–留作参考———————————————– —

你可以使用dlmread它以下列格式工作

M = dlmread(文件名,’;’)

filename是一个包含文件完整路径的字符串,除非该文件位于当前工作目录中,在这种情况下您只需键入文件名即可.

EDIT1:使用textscan代替,下面的代码应该做到这一点或至少大部分.

%rt is permission r for read t for open in text mode

csv_file = fopen('D:\Dev\MATLAB\stackoverflow_tests\1.csv','rt');

%the formatspec represents what the scan is 'looking'for.

formatSpec = '%s%s';

%textscan inputs work in pairs so your scanning the file using the format

%defined above and with a semicolon delimeter

C = textscan(csv_file, formatSpec, 'Delimiter', ';');

fclose(csv_file);

结果显示出来.

C{1}{1} =

1,000333e+003

C{1}{2} =

1,001297e+003

C{1}{3} =

1,002261e+003

C{2}{1} =

6,620171e+001

C{2}{2} =

6,519699e+001

C{2}{3} =

6,444984e+001

EDIT2:用点替换逗号并转换为double类型的整数:

[row, col] = size(C);

for kk = 1 : col

A = C{1,kk};

converted_data{1,kk} = str2double(strrep(A, ',', '.'));

end

celldisp(converted_data)

结果:

converted_data{1} =

1.0e+03 *

1.0003

1.0013

1.0023

converted_data{2} =

66.2017

65.1970

64.4498

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值