Matlab内置函数介绍说明

原文链接:https://www.cnblogs.com/Leo_wl/p/3297053.html
本文所说的Matlab内置函数,就是Matlab所谓的"built-in MATLAB function"。

在Matlab中,可以使用exist返回一个名称或者函数的状态,比如是工作区的变量,搜索路径的m函数,dll文件或者内置函数。

比如,我们可以使用exist 来查看plot函数的信息:

1 >> exist plot
2 
3 ans =
4 
5      5

可以看到,值为5,返回5说明就是"built-in MATLAB function"。从Matlab的组成来看,这些built-in MATLAB function应该都是matlab的核心函数,因此,也应该都包含在MCR中,因此这是一个直接可以调用的理由吧。
然后呢,下一步的工作就是需要了解到内置函数应该在核心的计算引擎中,外部工具箱的函数应该不属于(不排除其他工具箱中有部分函数也是内置函数)。

使用Matlab Help浏览器,打开核心组件Matlab的Functions节点,可以看到下面这些函数分类:
在这里插入图片描述
3.手动将这些大类中的函数手动复制到一个txt文本中,当然格式可能有点乱,不用管。

4.使用C#编写一个简单的函数,将上述txt文本进行处理,把函数名都截取出来,放到一个新的result.txt中。代码如下:

using System;
using System.Text ;
using System.IO ;

namespace FunctionNameProcess
{
    class Program
    {
        public static void Main(string[] args)
        {
            string fileName = @"funcname.txt" ;
            string saveName = @"result.txt";
            TextWriter tw = new StreamWriter (saveName ,false );
            using (TextReader tr = new StreamReader (fileName ))
            {
                string temp ;
                while ((temp = tr.ReadLine ())!=null )
                {
                    tw.WriteLine (GetBulidInFunction (temp ));
                }
            }
            tw.Close ();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }

        public static string GetBulidInFunction(string name)
        {
            if (name !="") {
                string[] names = name.Split ('\t');
                if (names!=null && names [0]!= "") {
                    return names [0];
                }
            }
            return "";
        }
    }
}

5.最后在matlab中编写一个简单的批处理代码,循环验证result.txt中的函数名的信息,是否属于内置函数即可。matlab代码如下:

%导入数据后是cell类型的数据类型
%要进行转换为字符串数组然后调用exist函数进行计算
%最终结果也应该是字符串数组,需要声明,添加过程中类型不一样会有错误
clc;clear;
newData = importdata('result.txt');
vars = fieldnames(newData);
for i = 1:length(vars)
    assignin('base', vars{i}, newData.(vars{i}));%在命名空间声明变量
end
result = {};%声明一个空的cell数组类型
for i = 1:size(textdata,1)
    temp =cell2mat(textdata(i,1));
    resultNo = exist(temp);
    if resultNo == 5 %返回5说明为内置函数
        len = size(result,1);
        result(len+1,1) = mat2cell(temp);
    end
end

OK,可以在result中看到属于内置函数的名称了。剩下的怎么办看你的了,本来想把这些函数都一一翻译出来,可惜太大了,有1000多个,最后放弃了,把这个技巧分享给大家,“授人以鱼不如授人以渔”,大家掌握了方法,其实也不难了。

备注:上面也提到了,其实也有可能其他工具箱也有一些内置函数。参考原文

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值