【MATLAB】for循环变量名变化的实现

分享一系列matalb使用的程序小片段。

【MATLAB】MATLAB保存图片 视频的程序:MATLAB怎么保存图片 视频-CSDN博客


文章目录

前言

一、问题

二、代码

三、扩展学习

语法

说明

示例

输入参数

输出参数

局限性

提示

四、总结



前言

        程序设计、图像处理和科学计算是matlab的常用应用领域。

        笔者经常会用matlab协助分析大量连续图片,且处理后的图片还要输出保存,这时候如果输出保存的图片有着规律的变量名,会特别有助于后期的数据整理和记录,下面的小分享就来分享一段小程序解决这个问题。


一、问题

问题很简单,举个简单的例子:

我要实现操作如下

a_out_1=矩阵图1,

a_out_2=矩阵图2,

.

.

.

a_out_n=矩阵图n

n=150000

这肯定是用for循环操作简单,但是如何实现让变量 a_out_n 中的 n 在循环里变化呢?


二、代码

经过学习,掌握了eval函数,我才发现这是个好函数,下面是用eval解决的过程:

for i=1:150000
    s=['a_out_',num2str(i),'=a',num2str(i),';'];
    eval(s);
end

几句话就搞定了。

对于以上几行代码:

num2str:把数字转成字符串

[]:组合了字符串

eval:执行这串字符串

for:实现数字的递增


三、扩展学习

语法

eval(expression)
[output1,...,outputN] = eval(expression)

说明

示例

[output1,...,outputN] = eval(expression) 在指定的变量中返回 expression 的输出。

示例

计算表达式

使用 eval 计算并绘制表达式 magic(5)

Z = eval('magic(5)');
mesh(Z)

【MATLAB】for循环变量名变化的实现_第1张图片

输入参数

expression — 要计算的表达式
字符向量 | 字符串标量

要计算的表达式,指定为字符向量或字符串标量。expression 必须为有效的 MATLAB 表达式,并且不能包含任何 MATLAB 关键字。要确定某词语是否为 MATLAB 关键字,请使用 iskeyword 函数。

示例: eval('magic(5)')

输出参数

output1,...,outputN — 计算的表达式的输出
任意 MATLAB 数据类型

计算的表达式的输出,以任何 MATLAB 数据类型形式返回。

局限性

  • 如果在匿名函数、嵌套函数或包含嵌套函数的函数中使用 eval,则计算的 expression 不会创建任何变量。

提示

  • 为了让 MATLAB 解析器对您的代码执行更严格的检查并避免未捕捉到的错误和其他意外行为,请不要在 eval 函数的输入中包含输出参数。例如,不推荐使用语句 eval(['output = ',expression])

    在这种情况下,请为 eval 函数指定输出参数,以存储计算的表达式的结果。例如:

      output = eval(expression)


四、总结

        这是本人matlab学习中的经验总结,如有不对的地方,欢迎大家指正,互相学习。

参考资料:计算 MATLAB 表达式 - MATLAB eval- MathWorks 中国

你可能感兴趣的:(MATLAB,matlab,开发语言,可变变量名)