大学物理知识点全解析
第四章循环结构4.3逻辑数组与向量化第104页2 * 2 = 4 2 * 3 = 6 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9注意外部for循环变量增加之前,内部for循环要完全执行完。当MATLAB遇到一个end语句,它将与最内部的开放结构联合。所以第一个end语句与语句“for jj = 1:3”,第二个end语句与语句“for ii = 1:3”联合。如果在循环嵌套中一个end语句突然被删除,将会产生许多难以发现的错误。如果for循环是嵌套的,那么它们必须含有独立的循环变量。如果它们含有相同的循环变量,那么内部循环将改变外部循环变量的值。如果break或continue语句出现在循环嵌套的内部,那么break语句将会在包含它的最内部的循环起作用。for ii = 1:3 for jj = 1:3 if jj ==3; break; end product = ii * jj; fprintf('%d * %d = %d ',ii,jj,product); end fprintf('End of inner loop '); end fprintf('End of outer loop ');如果内部循环变量jj为3,那么break语句开始执行,这将导致程序跳出内部循环。程序将会打印出“End of inner loop”,外部循环变量将会增加1,内部循环的执行重新开始。产生的输出值为: 1 * 1 = 1 1 * 2 = 2 End of inner loop 2 * 1 = 2 2 * 2 = 4 End of inner loop 3 * 1 = 3 3 * 2 = 6 End of inner loop End of outer loop
4.3逻辑数组与向量化在第二章中,我们提出MATLAB有两个基本类型的数据类型:数字型与字符型。数字型数据包括数字,字符型数据包含字符。除这两个数据类型之外,还有第三类数据类:逻辑型。“逻辑”数据类型在MATLAB中并不真实存在。其实,它是带特定逻辑属性标准数字型数据类型。逻辑型数组通过所有的关系运算符和逻辑运算符创建。它们区别于数字型的是在调用whos命令时,(logical)会出现在类型的后面。考虑下面的语句:
a = [1 2 3; 4 5 6; 7 8 9];
b = a > 5;
这些语句将会产生两个数组a和b。a将会产生一个数组:
[ \begin{array}{ccc}
1 & 2 & 3 \
4 & 5 & 6 \
7 & 8 & 9 \
\end{array} ]
而b将会产生一个特殊的逻辑数组,其中每个元素表示a中对应元素是否大于5。你是不是好奇这些逻辑数组在实际应用中有多大用处?其实,MATLAB数组循环赋值在各种场景中都是非常实用的。关于MATLAB数组循环遍历的具体例子和讲解,可以参考这个链接;如果你想更深入了解MATLAB数组循环赋值的实例,请看这里。
还在为MATLAB的嵌套循环感到困惑吗?不妨看看这篇关于MATLAB数组循环赋值的经典源码。这些资源不仅会让你对MATLAB的循环结构有更深的理解,还会让你在编程时游刃有余,事半功倍!