matlab读csv文件

由于课题要求,采集的数据是csv文件,但是由于时间太紧了,我只能选一些比较笨重的方法进行提取。


其中pressdata单元格下,每个单元格内含有500个数据,只能选择比较笨重的方法读取,希望大家能告诉我更有效的方法。

1. 将文件中无用数据删除,并将逗号剔除

2. 建立一个Str2Mat函数

function Mat = Str2Mat(str)
%this funtion put string into a matrix which contains the numbers in the
%string
%str:string;Mat the data matrix

strCell = str{1};
strLen = length(strCell);%find out the length of the string

%begin for loop in order to get every number in this string
Mat = [];
beginPosition = 0;
for i =1:strLen
    if strCell(i) ~= ' '%the first character of the string
        beginPosition = i;%if this is not a space, we can judge that it begins the number
        break;
    end
end

strArr{strLen} = [];
counter = 1;
for i = beginPosition:strLen
    if strCell(i) ~= ' '%将数字组成的字符串拆分成各数字组成的数组,组内的元素为数字的字符串
        strArr{counter} = [strArr{counter},strCell(i)];
    else
        counter = counter + 1;
    end
end


for i = 1:strLen
    if ~isempty(strArr{i})%将字符串翻译成数字,存入Mat中
        Mat(i) = str2double(strArr{i});
    end
end


end

3. 最后调用函数就能将csv中矩阵数据读出来了

clear
clc 
[a,b] = xlsread('G:\sss\脉象MATLAB处理程序\SHAONA\1.xlsx');%这样读取出来的数据分为两部分,一部分数据,另一部分就是字符串
str = b


%示例数据,需换为上边读入的数据
%找出所在字符串那一列,应用函数,将字符串变为数组即可。
%%str = {'10 20 03 15 027';'15 36 70 9 8';'18 78 23 69 32'}
[m,n] = size(str);
for i = 1:m
    Mat(i,:) = Str2Mat(str(i,1));%%调用str2Mat函数,参数为上边元胞矩阵中的每个字符串
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值