如何保存数据在多个表xlswrite吗?

2视图(30天)
嗨,我想保存数据从一个细胞xlswrite成多个工作表的工作簿。
在表1中我想保存数据从第一年,从第二年在表2中数据,等等。
我的代码是这样的:
f = 1:长度(duniqyear)
空= 0(1、长度(A));
j = 0;
X = regexprep (Y (f:), Y (f,:), sprintf (“% s $ 0”,“Z”))
Z = strfind (X);
k = 1:长度(A)
indx =找到(Z {k});
如果indx = = 1;
空(k) = j + 1;
结束
结束
C =找到(空的);
B = (C);
xlswrite (b, b, f)
结束
在哪里
duniqyear =
2008年
2009年
2010年
这几乎是工作。我需要找duniqyear数据相匹配的一年。问题是,当使用
Z = strfind (X);
Z返回值相匹配的所有字符串,其中包含“2008”和“2009”等等。这不是我想要的是一些字符串“200808042230 z”和“02010 kt”组。我只想匹配的表达式与第一组信息的字符串。
细胞是这样的:
“航空例行ESSB 201002282250 z汽车201002282250 kt 5000 ndv BR OVC001 / / / 01/01 Q0993 3071 / / 73
“航空例行ESSB 201002282320 z汽车201002282320 kt 2900 ndv BR VV002 01/01 Q0992 3071 / / 73
“航空例行ESSB 201002282350 z汽车201002282350 kt 4200 ndv BR VV002 01/01 Q0992 3071 / / 73
等等
我想使用strfind“2010”和“Z”来识别字符串包含的一年。这是可能还是我在错误的轨道呢?
谢谢你!
2的评论
李纳斯码头
李纳斯码头 2016年10月12日
好抱歉混乱的代码。这是Y:
Y = num2str (duniqyear)
Y =
2008年
2009年
2010年
我想做与代码:
X = regexprep (Y (f:), Y (f,:), sprintf (“% s $ 0”,“Z”))
今年是预谋你提到与“Z”。之后我想在这找到“Z2008”显然是不工作,但是我真正想做的是找到每一个字或一组的形式:201002282350 z。
我可以结合例如2009 Z - - - - - - - - - - - - - - - -在哪里mmddHHMM或有另一种方法做这个吗?
谢谢你的帮助!

登录置评。

接受的答案

Guillaume
Guillaume 2016年10月12日
编辑:Guillaume 2016年10月12日
如果我理解正确的话:
%的输入:
%:细胞char数组的数组。想找那里的年。
%(总是4位数)是一年之前,一个空间,紧随其后的是更多的数字和“Z”
%输出:
% duniqyear:独特的年编码,数字向量
% Asplit:单元阵列的输入分组,duniqyear对应。Asplit因此char数组的单元阵列的细胞阵列
yearstring = regexp (,‘(?< =)\ d {4} (?= \ d + Z) ',“匹配”,“一次”);%提取年字符串
断言(~ (cellfun (@isempty yearstring)),“没有找到年一些字符串”);
[duniqyear ~, idx] =独特(str2double (yearstring));%转换为数字,获得独特的值和相应的指数
Asplit = accumarray (idx 1:元素个数(A),[], @(指数){(指数)});%分配相同的年的目的地。
你应该学习 正则表达式 因为它是非常有用的发现并从字符串中提取模式。
1评论
李纳斯码头
李纳斯码头 2016年10月12日
这个了!太棒了!很好,现在我有我的数据整齐地排列和分离年年在excel表。谢谢你这么多!

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!