matlab中动态变量命名及赋值进阶

您所在的位置:网站首页 if用英文怎么读音 matlab中动态变量命名及赋值进阶

matlab中动态变量命名及赋值进阶

2023-08-12 13:37| 来源: 网络整理| 查看: 265

在了解到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个动态变量的命名,发挥你的想象力,你值得更多。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3