24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2502  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

soaringheart

铁虫 (初入文坛)

[求助] Matlab 如何批量录入excel表格未分列的数据已有3人参与

我懂得如何批量录入正常的excel表格到matlab中去,但现在的问题是有1000多个同样格式的excel表格(都只有第一列中有数据,且形式都如12;23;35;45这样用分号隔开),如下图001所示:

如何将这样的数据导入到matlab中去,并且分列显现?

因为有1000多个这样的excel表格,不太容易先将每一个excel表格都分列后,再录入到matlab中。。。。求大神帮忙!!!

Matlab 如何批量录入excel表格未分列的数据
001.jpg
回复此楼
人生在于经历
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

【答案】应助回帖

我的例子,在excel里面插入你的数据
CODE:
>> [num,txt,raw] = xlsread('F:\tt.xlsx')

num =

     []


txt =

    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'


raw =

    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
    '12;23;35;45'
>> ncidx = strfind(txt{1},';')

ncidx =

     3     6     9

然后用一下代码:
CODE:
num = zeros(numel(txt),numel(ncidx)+1);
for ii = 1:numel(txt)
    ncidx = [0 strfind(txt{ii},';') numel(txt{ii})+1];
    for jj = 1:numel(ncidx)-1
        num(ii,jj) = str2double(txt{ii}(ncidx(jj)+1:ncidx(jj+1)-1));
    end
end

得到
CODE:
>> num

num =

    12    23    35    45
    12    23    35    45
    12    23    35    45
    12    23    35    45
    12    23    35    45
    12    23    35    45
    12    23    35    45

What would Jesus do?
6楼2014-07-02 12:08:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

向海洋进军

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
贴到文本,导入用分号间隔既可

[ 发自小木虫客户端 ]
2楼2014-07-01 15:31:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
在cmd中批量重命名,然后循环导即可入

[ 发自小木虫客户端 ]
3楼2014-07-01 16:10:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

soaringheart

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by 向海洋进军 at 2014-07-01 15:31:48
贴到文本,导入用分号间隔既可

可是这样的excel表格有1000多个不容易一个一个的贴过去,很费时间。。。。。
人生在于经历
4楼2014-07-02 10:10:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见