概述
在了解到eval()函数所实现功能的基础上,可以把动态变量命名的问题转换为如何通过循环构造合适的字符串,再把字符串作为eval()的输入运行即可。
程序示例如下:
clear;clc;
for set1=1:10
for jklove=1:10
for kapa=1:50
fun('Hice=phiinkecejjj(slsajklove(1:2,:)'',Mkapa'');',set1,jklove,kapa);
end
end
end
fun('Hice=phiinkecejjj(slsajklove(1:2,:)'',Mkapa'');',set1,jklove,kapa);
function fun(inname,varargin)
set1=regexp(inname,'=','start');%获取=在输入字符串中的位置
temp_1=inname(1:set1-1);%获取输入字符串中=左边部分
input_2=inname(set1:end);%截取=后的字符串防止等号前的字符串造成干扰
set2=regexp(input_2,'(','start');%获取(所在位置
temp_2=input_2(1:set2(1)-1);%截取函数名称部分
temp_3=input_2(set2(1):end);%截取函数输入参数部分
numOfInputVar=size(varargin,2);
for temp_var1=1:numOfInputVar
varinput=sprintf('%s',inputname(temp_var1+1));
temp_1=regexprep(temp_1,varinput,num2str(cell2mat(varargin(temp_var1))));
temp_3=regexprep(temp_3,varinput,num2str(cell2mat(varargin(temp_var1))));
end %对变量名,函数输入参数进行变量可变部分的匹配和替换
outname=[temp_1,temp_2,temp_3];%将替换后的字符串组合成结果字符串
outname=regexprep(outname,'''','''''');%为使得字符串在调用eval()不报错,对字符串中的'进行匹配并替换为'';
disp(outname);
%eval(outname);
end
通过上述程序,完成了5000个动态变量的命名,发挥你的想象力,你值得更多。
最后
以上就是明理猎豹为你收集整理的matlab中动态变量命名及赋值进阶的全部内容,希望文章能够帮你解决matlab中动态变量命名及赋值进阶所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复