心灯 发表于 2007-1-19 11:14

如何快速生成如下的字符串?

我现在要处理很多数据文件,文件名为 abc00001,abc00002,... abc00009,abc00010,... abc00099,abc00100,...abc00879.准备把这些文件名给放到一个数组里面去。

不知道如果用循环,ii 为变量,如何不用if语句来判断 ii 的数值,快速生成这个字符串数组? 原来用if 判断 ii 的数值大小,然后前面加上abc和不同的0的个数,感觉很繁琐...

当然,不用循环的方式更好,不知道有没有?

谢谢!

xjzuo 发表于 2007-1-19 11:40

试试如下代码:
%%%%%%%%%%%%%%
for k=1:100
   strcat('abc00',num2str(k))
end
%%%%%%%%%%%%%%

心灯 发表于 2007-1-19 12:09

谢谢指点,不过你的代码生成的是 abc001,abc002,...abc009,abc0010。。 ,而我想要的是abc010这样的形式,即文件名中的数字位数加1,前面的0就要减少1个... 呵呵

eight 发表于 2007-1-19 13:02

原帖由 心灯 于 2007-1-19 12:09 发表
谢谢指点,不过你的代码生成的是 abc001,abc002,...abc009,abc0010。。 ,而我想要的是abc010这样的形式,即文件名中的数字位数加1,前面的0就要减少1个... 呵呵



for k=1:100
   a(k) = sprintf('%.5d',k);
end

[ 本帖最后由 eight 于 2007-1-19 18:40 编辑 ]

xjzuo 发表于 2007-1-19 14:51

回复

to 心灯:不好意思,没有仔细看.
再试试如下代码:
%%%%%%%%%%%%%
for k=1:100
   a{k}= sprintf('%.5d',k); %%%eight的程序我好象运行不了,不过思路是对的
   b{k}=strcat('abc',a{k});
end
b
%%%%%%%%%%%%%

geoer 发表于 2007-1-19 15:11

()、[]、与{}的区别是什么?准确的说这应该是变量元素引用的问题吧。
a{}用在单元型变量元素引用中,还有对单元型变量a()显示的是它的简写形式;
a()用在向量、矩阵的元素引用中
a[]没有这个形式吧。

[ 本帖最后由 geoer 于 2007-1-19 15:24 编辑 ]

lxq 发表于 2007-1-19 15:19

回复 #6 geoer 的帖子

您可以再另开一个帖子

专门讨论三个括号的区别

对于初学者 是很有帮助的

eight 发表于 2007-1-19 15:25

原帖由 xjzuo 于 2007-1-19 14:51 发表
to 心灯:不好意思,没有仔细看.
再试试如下代码:
%%%%%%%%%%%%%
for k=1:100
   a{k}= sprintf('%.5d',k); %%%eight的程序我好象运行不了,不过思路是对的
   b{k}=strcat('abc',a{k});
end
b
%%%% ...


唉,不好意思,感冒的时候头脑反应是迟钝点的了,居然把matlab的数组当作了c来使用,汗一个,我的意思就是存放到数组中

心灯 发表于 2007-1-19 16:19

不错,谢谢几位的帮助。:@)   问题可以解决了。

happy 发表于 2007-1-21 13:37

原帖由 geoer 于 2007-1-19 15:11 发表
()、[]、与{}的区别是什么?准确的说这应该是变量元素引用的问题吧。
a{}用在单元型变量元素引用中,还有对单元型变量a()显示的是它的简写形式;
a()用在向量、矩阵的元素引用中
a[]没有这个形式吧。


()算术表达式中的应用就不用说了,它还可以用于函数的参数,或者向量矩阵的下标
[]用于表示向量或者矩阵
{}一般用于单元数组

没有a[]的形式

Marina_sun 发表于 2009-6-17 14:46

非常有启发性 谢谢各位的讨论
页: [1]
查看完整版本: 如何快速生成如下的字符串?