matlab - 将向量输入传递给 MATLAB 函数
问题描述
我正在尝试在 MATLAB 中编写一个以 1x3 向量作为输入的函数。我的代码看起来像这样:
function myFunction=([x1, x2, x3], [y1, y2, y3], [z1, z2, z3])
其中所有输入都是数字,然后在函数的主体中,我通过向量中的数值执行一些计算索引。我希望向量是用户输入,因此用户将向量及其分量(x1、x2 等)输入到函数参数中。但是,我收到一条错误消息:“表达式无效。调用函数或索引变量时,请使用括号。否则,请检查不匹配的分隔符。” 因此,我相信我的语法或其他错误。我知道 MATLAB 应该能够在函数中接受向量输入,所以请让我知道我做错了什么。谢谢!
解决方案
您需要做的是像这样声明您的函数:
function myFunction(x,y,z)
% your function code here
end
x(1)
然后在您的函数中,您可以使用、y(2)
等访问向量的各个元素。
要调用函数,包括您喜欢的任何数字,您可以在 Matlab 命令窗口中输入(例如),
myFunction([1 2 3],[4 5 6],[7 8 9])
然后调用函数中的代码,x
变量设置为 vector [1,2,3]
,y
变量设置为[4,5,6]
和z
to [7,8,9]
。使用逗号来描述值是可选的。如果您的函数然后访问y(2)
它将获得y
向量的第二个值,这将是5
- 重要的是要注意 Matlab 中的索引是基于 1 的,因此第一个元素x
是使用x(1)
.
如果您需要返回值,您可以使用:
function [a,b,c] = myFunction(x,y,z)
然后只需在语句之前分配a
,b
或c
在您的代码中。end
有关更多信息,请参阅官方 Matlab 文档。
我要补充一点,matlab 的大部分优势在于以矢量化形式处理数据,所以如果你可以避免拆分成单独的元素,我会这样做。例如,如果你需要添加两个向量,你可以这样做z = [x(1)+y(1), x(2)+y(2), x(3)+y(3)]
,但更好(更易读、更易维护、更快)是z=x+y
.
推荐阅读
- ios - 手势不再适用于 MHFacebookImageViewer
- r - R/Shiny:使用上传文件中的标题动态填充 CheckBox 组
- javascript - 用 JS 制作井字游戏
- mysql - 如何从同一个 wordpress 服务器(在同一台服务器上运行的 docker 容器)访问在 docker 容器中运行的数据库?
- javascript - 测试用例检查是否存在多个特定模式的文件
- python - Second Session ENGINE without expiry date
- sql - 如何取消嵌套 BigQuery sql 中的嵌套重复记录
- php - Ajax更新不工作,如何调试
- python - 如何将 3 个通道转换为 RGB 图像?
- reactjs - 如何集中处理注销+重定向