如何调用内置的内置函数?

时间:2016-02-04 14:00:46

标签: matlab built-in

自R2013b以来,

table()一直是MATLAB中的标准函数。从文档中我可以看出,与tablesumcell或任何其他builtin function相比,struct没有什么特别之处。< / p>

但是,当我尝试使用builtin('table',var1,...varN)运行该函数时,我收到错误消息:

  

使用内置错误

     

找不到内置函数'table'

进一步调查显示它实际上不被视为内置函数:

which('cell')
built-in (C:\Program Files\MATLAB\R2014b\toolbox\matlab\datatypes\cell)

which('table')
C:\Program Files\MATLAB\R2014b\toolbox\matlab\datatypes\@table\table.m  % table constructor
|
Not builtin

进一步调查:

which cell2mat
C:\Program Files\MATLAB\R2014b\toolbox\matlab\datatypes\cell2mat.m

which mat2cell
C:\Program Files\MATLAB\R2014b\toolbox\matlab\datatypes\mat2cell.m

which table2array
C:\Program Files\MATLAB\R2014b\toolbox\matlab\datatypes\table2array.m

which struct2cell
built-in (C:\Program Files\MATLAB\R2014b\toolbox\matlab\datatypes\@struct\struct2cell)  % struct method

which cell2struct
built-in (C:\Program Files\MATLAB\R2014b\toolbox\matlab\datatypes\@cell\cell2struct)  % cell method

因此,cell是内置的,而table则不是。{1}}。 cell2struct内置cell2mat,而function GetFullActivityDescription(id) { var onSuccess = function () { $('#full-activity-description-modal').modal('show'); } var onFailed = function () { } var UserContext = this; PageMethods.GetFullActivityDescription(id, onSuccess, onFailed, UserContext); } 则不是。

为什么会这样,是否有一种简单的方法来调用MATLAB不考虑内置的重载标准函数?

如果您认为为什么部分“过于宽泛”,请忽略它并跳转到问题的最后部分。

2 个答案:

答案 0 :(得分:2)

#app/controllers/meals_controller.rb class MealsController < ApplicationController def edit @log = Log.find params[:log_id] @meal = Meal.find params[:id] end def update @log = Log.find params[:log_id] @meal = Meal.find params[:id] @meal.update meal_params end end #app/views/meals/edit.html.erb <%= form_for [@log, @meal] do |f| %> 的文档页面给出了明确的定义:

  

内置函数是MATLAB可执行文件的一部分。 MATLAB没有在MATLAB语言中实现这些功能。虽然大多数内置函数都有与之关联的.m文件,但此文件仅提供该函数的文档。

答案 1 :(得分:2)

您可以通过以下方式找到本机功能:

allTables = which  ( '-all', 'table' )
allTables(cell2mat(strfind ( allTables, matlabroot )))

它不是全面的,对于某些功能(例如总和),根文件夹中有很多...