查看: 112|回复: 5|关注: 0

[已解决] 格式相同矩阵或元胞进行同一处理,如何定义函数

[复制链接]

新手

14 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
一个矩阵中包含很多相同格式的元胞,或者一个元胞中包含很多格式相同的数列,需要对元胞或数列进行同一操作。不知道是否可以定义通用函数。我自己不懂,就只能不断重复定义。而且如果可以定义函数,调用方法可以也教下吗? 谢谢。
2.PNG
01.PNG

论坛优秀回答者

中级

659 麦片

财富积分


5001500


2

主题

588

帖子

128

最佳答案
  • 关注者: 9
发表于 7 天前 | 显示全部楼层 |此回复为最佳答案
如果处理过程只和序号相关且序号有序,可以使用eval来进行处理。
例如,上述代码中的enrNo. 可以参考如下代码:
for ii = 1 : 20
eval(['enr',num2str(ii),'=abs(v1)*m1*abs(acc(:,',num2str(ii),'));']);
end

新手

14 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
 楼主| 发表于 6 天前 | 显示全部楼层
TCCMATLAB 发表于 2018-9-13 19:16
如果处理过程只和序号相关且序号有序,可以使用eval来进行处理。
例如,上述代码中的enrNo. 可以参考如下代 ...

非常棒的函数,太有用了,谢谢!

新手

14 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
 楼主| 发表于 6 天前 | 显示全部楼层
TCCMATLAB 发表于 2018-9-13 19:16
如果处理过程只和序号相关且序号有序,可以使用eval来进行处理。
例如,上述代码中的enrNo. 可以参考如下代 ...

大神,我尝试用eval函数做了一个代码,但是提示出错。说“要构造矩阵,请使用方括号而不是圆括号”。大神可以看看哪里不正确吗?
for i=1:5
    eval(['vol',num2str(i),'=xlsread('G11ELEM-',num2str(i),'');'])
end
%vol1=xlsread('G11ELEM-1');
%vol2=xlsread('G11ELEM-2');
%vol3=xlsread('G11ELEM-3');
%vol4=xlsread('G11ELEM-4');
%vol5=xlsread('G11ELEM-5');

论坛优秀回答者

中级

659 麦片

财富积分


5001500


2

主题

588

帖子

128

最佳答案
  • 关注者: 9
发表于 6 天前 | 显示全部楼层
ssno 发表于 2018-9-14 04:13
大神,我尝试用eval函数做了一个代码,但是提示出错。说“要构造矩阵,请使用方括号而不是圆括号”。大神 ...

在引号内部添加引号,需要使用双引号。
所以你的代码应该为:

eval(['vol',num2str(i),'=xlsread(''','G11ELEM-',num2str(i),''');'])

以后在做字符串拼接时,可以先在MATLAB command window里面运行一下,看是不是你想要的字符串。
把[]那部分拷贝到command window里面,运行即可。

新手

14 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
 楼主| 发表于 6 天前 | 显示全部楼层
TCCMATLAB 发表于 2018-9-14 08:37
在引号内部添加引号,需要使用双引号。
所以你的代码应该为:

了解了。学习到了非常多的知识,谢谢大神。 :D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表