- 积分
- 23
- 注册时间
- 2010-11-7
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 messenger 于 2011-1-6 20:07 编辑
在看到bainhome 版主的帖子中,有如下问题:- ii=1:3;
- q=strcat({'f'},num2str(ii','%d'));
- arrayfun(@(x) assignin('base',q{x},l{x}*u{x}),1:3)
- f1,f2,f3
复制代码 这也是生成变量名的不错的方法,但是当ii1:30的时候就会发现q是这样的:-
- q =
- 'f 1'
- 'f 2'
- 'f 3'
- 'f 4'
- 'f 5'
- 'f 6'
- 'f 7'
- 'f 8'
- 'f 9'
- 'f10'
- 'f11'
- ……
复制代码 主要是f和1之间的空格问题,目前还没有找到去掉空格的好的办法,用:-
- q=arrayfun(@(i)sprintf('x%d',i),1:30,'uniformoutput',0)
复制代码 可以解决
还有一个问题是在- ii=1:15;
- q=arrayfun(@(x)sprintf('s(%d).f1=10*rand(3+%d,4+%d)',x,x,x),...
- ii,'UniformOutput',false);
- cellfun(@eval,q)
复制代码 中使用eval的问题
使用evalin可以解决- arrayfun(@(x)evalin('base',sprintf('s(%d).f1=10*rand(3+%d,4+%d)',x,x,x)),1:15);
复制代码 |
评分
-
1
查看全部评分
-
|