@是匿名函数的意思。
匿名函数就像传统编程语言中的内联函数,在单个MATLAB语句中定义。 它由单个MATLAB表达式和任意数量的输入和输出参数组成。
可以在MATLAB命令行或函数或脚本中定义一个匿名函数。这样就可以创建简单的函数,而无需为它们创建一个文件。
从表达式创建匿名函数的语法是:f = @(arglist)expression
定义式:f = @(x1, x2, ...) exper
@后面的括号里面是自变量,然后跟一个空格(没有空格也行),然后跟着关于x1, x2, ...的表达式。
示例:
编写一个名为power的匿名函数,它将使用两个数字作为输入,并将第一个数字返回到第二个数字的幂值。
创建脚本文件并在其中键入以下代码:
power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)
当运行该文件,得到以下结果:
result1 = 343
result2 = 7
result3 = 1.0000e-10
result4 = 9.5459
@是匿名函数的意思。
f = @(x)cos(x)+2*sin(x);
@(x)表示以x为变量,cos(x)+2*sin(x)为函数体
在别的函数中可以调用句柄f
比如,fplot(f,[-5,5]);
就是调用fplot函数来画匿名函数f在[-5,5]的图形。
figure是建立图形的意思,系统自动从1,2,3,4...来建立图形,数字代表第几幅图形,figure(1),figure(2)就是第一第二副图的意思,在建立图形的时候,您注意一下它的标题就是figure1或figure2等等,对应到程序中就是您的例子语句
一般建立新图只需要一个figure就行,系统自动建立新图,可以简单一点,当然要加上也可以
另外介绍你一个相关的画图的:多子图,就是一张图中有好多小图,也是有标号的
使用以下命令
subplot(m,n,k)
subplot('Position',[left bottom width height])
m表示画几行
n表示画几列
k表示现在画的是第几幅图
figure,就是控制窗口数量的,举个例子就明白了
直接显示两个图片:
imshow(A1);
imshow(A2);
则会出现两个窗口,一个窗口显示A1,一个窗口显示A2
若
figure,
imshow(A1);
imshow(A2);
则只会出现一个窗口,窗口先显示A1,后显示A2
"=="是条件运算中的等于运算符,用来判断“==”左右两边的表达式或数值是否相等。若相等,则返回1,;否则,返回0。
在matlab中,"=="与C语言中的等于运算符"=="类似。
举例说明如下:
A = [1,2,3,3,2,3,2]; % 定义一个向量A
maxIndex = A==max(A); % 确定向量A中最大值所在位置
% max(A)表示取A的最大值,A==max(A)表示向量A中每个元素与max(A)的值进行比较,如果相等,则向量maxIndex对应位置1;否则,置0。
% 执行以上程序后,向量maxIndex=[0,0,1,1,0,1,0]