我是靠谱客的博主 明理猎豹,最近开发中收集的这篇文章主要介绍matlab中动态变量命名及赋值进阶,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在了解到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中动态变量命名及赋值进阶所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部