[已解决] function定义函数,命令区输入数后一直显示未定义

[复制链接]
士郎小天使 发表于 2021-4-8 20:30:14
本帖最后由 士郎小天使 于 2021-4-8 20:31 编辑


123.png 准备按这个来弄
function [y]=wei(a,b,x)
y=(a.*b.^a)./((b+x).^(a+1))
end
这是我的脚本
在命令行输入a=1,b=1,x=1;wei(a,b,x)显示未定义函数wei,为何不能出y的结果

最佳答案


TouAkira 发表于 2021-4-9 04:05:36
士郎小天使 发表于 2021-4-8 15:14
我名字取为wei.m的话,会显示无法定义具有重复名称wei的函数,函数名字和m文件不能取一样的吧,不好意思我 ...

声明函数名称、输入和输出
您可以将函数保存在以下位置:

    只包含函数定义的函数文件中文件的名称须与文件中第一个函数的名称一致

    包含命令和函数定义的脚本文件中函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。

官网帮助文档全都有讲解,稍微花点时间去看看,中学水平肯定能看懂。
而且你提问时
按这个来弄
function [y]=wei(a,b,x)
y=(a.*b.^a)./((b+x).^(a+1))
end
这是我的脚本

怎么保存m文件时就画蛇添足非要往函数代码前面加clc和clear?

最后,请先仔细看发帖提示和置顶帖子,尤其是《 你知道如何正确提问么? 》、《 为什么你的帖子没人回 》这些帖子,学会提问,不要每次都发张图出来,能发代码文本的事情就不要发图,并不能多提供信息,反而还增加了别人运行你的代码的难度。

7 条回复


TouAkira 发表于 2021-4-9 01:35:16
把函数代码存为 wei.m 文件后,再在命令行窗口中调用

或者把函数代码放在底部,把调用代码放在同一脚本文件中函数代码的前面,然后Ctrl + Enter 来运行

士郎小天使 发表于 2021-4-9 01:48:41
TouAkira 发表于 2021-4-9 01:35
把函数代码存为 wei.m 文件后,再在命令行窗口中调用

或者把函数代码放在底部,把调用代码放在同一脚本文 ...

我已经存为M文件了,怎么在命令行输入还是未定义啊
第二种方法是把这么写吧,把调用放在前面,这个倒是成功了
a=1,b=1,x=1;wei(a,b,x)
function [y]=wei(a,b,x)
y=(a.*b.^a)./((b+x).^(a+1))
end

TouAkira 发表于 2021-4-9 02:03:46
士郎小天使 发表于 2021-4-8 13:48
我已经存为M文件了,怎么在命令行输入还是未定义啊
第二种方法是把这么写吧,把调用放在前面,这个倒是成 ...

MATLAB主窗口上方有"当前文件夹",你保存的m文件需要在该文件夹里才能被找到并调用
如果不在,要么更换文件夹路径,要么去"主页"菜单栏里面"设置路径"里添加含有文件的路径,直到命令行中运行
which wei
并能显示该文件路径,才能正确调用

士郎小天使 发表于 2021-4-9 02:15:58
TouAkira 发表于 2021-4-9 02:03
MATLAB主窗口上方有"当前文件夹",你保存的m文件需要在该文件夹里才能被找到并调用
如果不在,要么更换文 ...

231231321.png
我把这个文件取名weibull
然后左边已经显示有weibull.m了
然后在命令行输入a=1,b=1,x=1,wei(a,b,x)是未定义wei
输入a=1,b=1,x=1,weibull(a,b,x)是尝试将 SCRIPT weibull 作为函数执行
应该怎么输入啊

TouAkira 发表于 2021-4-9 02:33:48
士郎小天使 发表于 2021-4-8 14:15
我把这个文件取名weibull
然后左边已经显示有weibull.m了
然后在命令行输入a=1,b=1,x=1,wei(a,b,x)是未 ...

2楼就清清楚楚地讲过了,"把函数代码存为 wei.m 文件"

你的函数 function 开头然后写的名字就叫wei,这个地方必须与m文件的文件名匹配,否则认不出来!

问问题之前请仔细看我说的每一个词,比对你的做法与我讲的解决方案是否一致!

士郎小天使 发表于 2021-4-9 03:14:41
本帖最后由 士郎小天使 于 2021-4-9 03:19 编辑
TouAkira 发表于 2021-4-9 02:33
2楼就清清楚楚地讲过了,"把函数代码存为 wei.m 文件"

你的函数 function 开头然后写的名字就叫wei,这 ...

我名字取为wei.m的话,会显示无法定义具有重复名称wei的函数,函数名字和m文件不能取一样的吧,不好意思我确实是小白,麻烦您回复这么多次

TouAkira 发表于 2021-4-9 04:05:36
士郎小天使 发表于 2021-4-8 15:14
我名字取为wei.m的话,会显示无法定义具有重复名称wei的函数,函数名字和m文件不能取一样的吧,不好意思我 ...

声明函数名称、输入和输出
您可以将函数保存在以下位置:

    只包含函数定义的函数文件中文件的名称须与文件中第一个函数的名称一致

    包含命令和函数定义的脚本文件中函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。

官网帮助文档全都有讲解,稍微花点时间去看看,中学水平肯定能看懂。
而且你提问时
按这个来弄
function [y]=wei(a,b,x)
y=(a.*b.^a)./((b+x).^(a+1))
end
这是我的脚本

怎么保存m文件时就画蛇添足非要往函数代码前面加clc和clear?

最后,请先仔细看发帖提示和置顶帖子,尤其是《 你知道如何正确提问么? 》、《 为什么你的帖子没人回 》这些帖子,学会提问,不要每次都发张图出来,能发代码文本的事情就不要发图,并不能多提供信息,反而还增加了别人运行你的代码的难度。
回复此楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表