Matlab语句内部没有任何函数错误



这是我正在尝试执行的一个简单的Matlab代码。

function result = scale(img, value)
result = value .* img;
end
dolphin = imread('dolphin.png')
imshow(scale(dolphin, 1.5));

错误显示:

Error: File: scale.m Line: 5 Column: 1 This statement is not inside any function. (It follows the END that terminates the definition of the function "scale".)

我在这里做错了什么?

scale.m是一个函数M-文件,因为它以关键字function开头。end之前的部分是函数的定义。当您在MATLAB命令行调用scale时,它会执行函数中的代码。end之后的内容不是函数的一部分,因此无法执行。

如果您打算编写一个带有专用函数scale的脚本,并且只想在该脚本中使用该函数,请将读取和显示dolphin的代码行放在文件顶部。私有函数应该在脚本部分之后。此语法自MATLAB R2016b以来一直受支持。

否则,将dolphin代码移动到另一个M文件,该文件将是一个没有任何函数定义的简单脚本M文件。然后,这个脚本可以使用scale,它将调用文件scale.m中的函数。

第三种选择,将所有代码保存在同一个文件中,是完全不使用脚本,并将脚本代码放入函数中:

function f % just a random name
dolphin = imread('dolphin.png')
imshow(scale(dolphin, 1.5));
end
function result = scale(img, value)
result = value .* img;
end

(函数名不需要与文件名匹配,尽管如果这些名称不匹配,MATLAB编辑器会警告您。(

相关内容

  • 没有找到相关文章

最新更新