利用MATLAB的if语句与for语句求解公式:

公式中总计有53个量,如果利用人工计算,虽可解,但其计算量巨大。所以在一直各个值(即公式中等号右边的各个x量)的情况下,希望能够使用MATLAB语句,进行等式左边的求解。

下面是MATLAB的学习,最后将附上上述公式的求解代码。

一、if 语句(判断语句)

1. 在MATLAB中与C语言中不同的是,if语句的结束语句是end,而不是{};

2. if语句中如果有else if 或者else时,其语句形式为:

if expression1

statements1

elseif expression2

statements2

else expression3

statement3

end

其中,

expression参数为MATLAB表达式,通常由一些变量或者联合相关操作的更小表达式(例如:array==0)或逻辑函数(例如lisreal(A)组成。

statement参数是一条或者多条仅仅当expression为true或者非零时而执行的MATLAB语句。

示例:

将TM0.mat文件(上图)中的第一行第一列的值通过以下的MATLAB语句进行转化:

load("TM0.mat")         %加载文件夹中的TM0.mat文件
if(TM0(1,1)<1)          TM0(1,1) = 1;       %若TM0.mat文件中的第一行第一列的值小于1,则将1赋值给TM0.mat文件中的第一行第一列
elseif(TM0(1,1)<1e-15)TM0(1,1) = 0;       %若TM0.mat文件中的第一行第一列的值小于1e-15,则将0赋值给TM0.mat文件中的第一行第一列
else(TM0(1,1)>1)TM0(1,1) = -1;      %若TM0.mat文件中的第一行第一列的值大于1,则将-1赋值给TM0.mat文件中的第一行第一列
end

运行以上代码,便将TM0.mat文件中的第一行第一列的值换为1或0或-1。

运行后,TM0.mat的结果如下:

二、for语句(循环语句)

其实for语句或while语句在高中数学中就已经学过其循环结构,在大学的C语言中也会有加强练习,现在运用到MATLAB中也比较简单,只要掌握其基本的逻辑语句即可,在举一反三进行多次使用。

for语句的格式为:

for 循环变量=初始值:步长:最终值
    循环体语句
end

for循环的值有三种形式:

格式 描述
初始值:最终值 将索引变量从初始到终值递增1,并重复执行程序语句,直到索引值大于终值。
初始值:步长:初始值 按每次迭代中的值步骤递增索引, 或在步骤为负值时递减。
valArray 在每个迭代 valArrayon 数组的后续列中创建列向量索引。例如, 在第一次迭代中, index = valArray (:, 1),循环执行最大 n 次, 其中 n 是 valArray 的列数,由 numel (valArray, 1,:) 给出。输入 valArray 可以是任何 MATLAB 数据类型, 包括字符串、单元格数组或结构。

示例:

1.第二中格式示例:

在MATLAB中输入一下语句:

for a = 10:1:20fprintf('the value of a : %d ',a);
end

其运行结果为:

the value of a : 10     the value of a : 11
the value of a : 12     the value of a : 13
the value of a : 14     the value of a : 15
the value of a : 16     the value of a : 17
the value of a : 18     the value of a : 19
the value of a : 20

2. 第三种格式示例:

在MATLAB中输入一下语句:

for A = [1,2,3,4;5,6,7,8;9,10,11,12]disp(A);
end

其运行结果为:

  159261037114812

以上便为if语句与for语句的基本学习,若要熟练运用,还需多加练习。下面就是对if语句和for语句的联合使用。

三、if语句与for语句的嵌套

a = 0;
for i=1:4if i<=3a = a+2;end
end

由代码所示,for语句中嵌套if判断语句,表示在i<=3时,a进行2的累加;当i>3时,a不进行任何操作,知道循环结束。

四、解题

根据对if语句与for语句的简单学习,现在通过编写MATLAB代码对前面的公式进行求解。

load("TM0.mat")         %加载文件夹中的TM0.mat文件
for i = (1:18)x(i) = TM0(21,i+1);              x_TMEH(i) = TM0(21,20);              x_EH(i) = TM0(20,i+1);            x_j(1,i) = 0;if (i<=4)x_im(i) = TM0(3,2);          elseif (i>=5 & i<=8)x_im(i) = TM0(14,6);elseif (i>=9 & i<=12)x_im(i) = 2 * TM0(16,10) + TM0(11,10) ;elseif (i>=13 & i<=14)x_im(i) = 2 * TM0(14,6) ;elseif (i>=15 & i<=18)x_im(i) = 2 * TM0(16,10) + TM0(17,16) ;end
for j = (1:18)                  if (j+1 ~= i+1)x_j(1,i) = x_j(1,i)+ TM0(21,j+1);else x_j(1,i) = x_j(1,i) + 0;end
end
x_measure(1,i) = x(i) + ( x_TMEH(i) + x_j(1,i) ) .* (x_EH(i) + x_im(i)) ./ ( x_TMEH(i) + x_j(1,i) + x_EH(i) + x_im(i)) ;
end

经过半天的调试,终于求解出来了。一定要注意if和for语句的嵌套,同时要根据公式求解需求,给定if的条件。

MATLAB中的for循环语句与if判断语句的使用相关推荐

  1. matlab 连续两个if,求大神解答一个matlab中的for循环嵌套if选择语句

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求大神解答一个matlab中的for循环嵌套if选择语句回答:1.最后缺少一个end;2.这句输出没什么意义:disp A(i)=A ...

  2. continue语句只用于循环语句中_Java之循环语句、条件判断语句(三目运算符)、break、continue...

    之前的内容只是让读者可以定义变量,输出变量等基础功能而已.这远远是不够的,今天,我们学习的内容可以帮你开始完善自己想开发的内容,在这之前我们先理解一个概念:一个表达式的返回值是布尔值的表达式称为布尔 ...

  3. MATLAB中的for循环

    MATLAB中的for循环 格式 for i=开始:步长(步长为1可省略):结束          .... end 示例1 输出1至10 代码 输出 示例2 输出10以内的奇数 代码 输出

  4. 模板上 php dede,织梦CMS模板中dede标签使用php和if判断语句的方法

    今天我们织梦模板团来说说织梦模板中dede标签使用php和if判断语句的方法: 先来看看下面这个标签: 下面来说说具体的方法: 方法一: 用个if判断语句,判断一个字段是否有东西,有就输出1,没有则就 ...

  5. matlab for循环太慢,Matlab中每个for循环迭代的速度降低

    我在Matlab中编写了一个while循环,应该使用Matlab中的tic toc延迟在指定的时间间隔内将数组中的每个值从Matlab发送到arduino,然后读取值并将它们存储在变量中并对其进行图形 ...

  6. JAVA语言中流程控制(顺序结构、判断语句、循环语句)

    流程控制: 程序在执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的,所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现想要的功能.java中流程控制有:顺 ...

  7. matlab怎么绘制李萨如图形_在MatLab中使用for循环绘制图形

    为什么会发生这种情况...... 使用plot(x(i),y)绘制100个单点(每次迭代一个),默认情况下不会显示它们.因此情节看起来是空的. 解决方案1:矢量化计算和直接绘图 我认为你打算画一条连续 ...

  8. oracle中的if条件判断语句,SQL条件判断语句语法

    条件判断语句可以作为程序段的逻辑结构跳转,根据不同条件执行不同的程序段,也可以在单条SQL语句内部使用,根据不同条件进行更新选择取值. 三种数据库条件判断语句都有if和case,每种数据库语法存在些微 ...

  9. mysql 中 条件判断语句if_mysql条件判断语句if的使用

    mysql条件判断语句if的使用:先判断数据库中是否存在是否存在指定值存在就修改不存在就添加. 这里我就用啦mysql存储过程的if语句 DROP  PROCEDURE  IF EXISTS   过程 ...

最新文章

  1. echarts中toolbox位置_基于QGIS中的LSMS(大规模均值漂移)分割算法
  2. lncrna研究,2021最新相关资料合集
  3. OpenGL多线程实例
  4. myid文件到底是否需要自己手动配置
  5. appium+python自动化项目实战(一):引入nose和allure框架
  6. linux7.0安装过程详解,图解红旗Linux7.0安装过程.doc
  7. oralce 存储过程、函数和触发器
  8. Multisim的学习记录(一)
  9. PDF能编辑吗,怎么添加PDF水印
  10. POJ 2387.Til the Cows Come Home
  11. 行业点评:有赞996事件,要感恩程序员的加班
  12. 管理科学与运筹学(MS/OR)国际期刊最新权威排名
  13. SEO 基础知识遇上圣诞节
  14. P2184 贪婪大陆(线段树)
  15. R语言绘制Cleverland点图
  16. ArcGIS制图之阴影效果的表达与运用
  17. win10:强力删除文件
  18. c语言程序由什么开头和结尾,一个完整的C程序由什么组成?
  19. java中 基础 知识 逻辑控制
  20. 【应用随机过程】04. 马尔可夫链的平稳分布

热门文章

  1. 我的第一个Android应用程序
  2. Tensorflow深度学习实战之(五)--保存与恢复模型
  3. moeide安装_让开发部署提速的 IDEA 插件神器攻略(转)
  4. 《我的第一本C++书》迷你书——看图学C++免费下载
  5. Git Diff 算法——Myers算法
  6. database - sqlalchemy
  7. OB0206 obsidian 表格编辑插件:advanced Tables插件使用
  8. AIDAS原理(转载)
  9. 虎书学习笔记4:图形学基础数学(隐式二维直线、隐式二次曲线、二维参数曲线、二维参数直线、二维参数圆)
  10. 【Celery】任务Failure或一直超时Pending