当前位置: 首页 > 编程笔记 >

MATLAB检查C ++ MEX文件中的输入/输出数量

姚建树
2023-03-14
本文向大家介绍MATLAB检查C ++ MEX文件中的输入/输出数量,包括了MATLAB检查C ++ MEX文件中的输入/输出数量的使用技巧和注意事项,需要的朋友参考一下

示例

在此示例中,我们将编写一个基本程序,该程序检查传递给MEX函数的输入和输出的数量。

首先,我们需要创建一个实现“ MEX网关”的C ++文件。这是从MATLAB调用文件时执行的函数。

testinputs.cpp

// MathWorks提供的头文件
#include "mex.h"

// 网关功能
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    // 如果输入数量不是3或4,则此功能将出错
    // 如果输出数量大于1,此功能将出错

    // 检查输入:
    if (nrhs < 3 || nrhs > 4) {
        mexErrMsgIdAndTxt("Testinputs:ErrorIdIn",
            "MEX文件的输入数量无效。");
    }

    // 检查输出:
    if (nlhs > 1) {
        mexErrMsgIdAndTxt("Testinputs:ErrorIdOut",
                "MEX文件的输出数量无效。");
    }
}

首先,我们包含mex.h标题,该标题包含与MEX API一起使用的所有必需函数和数据类型的定义。然后,我们实现mexFunction如图所示的功能,其中其签名不得更改,而与实际使用的输入/输出无关。功能参数如下:

  • nlhs:请求的输出数量。

  • *plhs[]:包含MEX API格式的所有输出的数组。

  • nrhs:传递的输入数。

  • *prhs[]:包含MEX API格式的所有输入的数组。

接下来,我们检查输入/输出参数的数量,如果验证失败,则使用mexErrMsgIdAndTxt函数抛出错误(期望使用somename:iD格式标识符,简单的“ ID”将不起作用)。

将文件编译为后mex testinputs.cpp,可以在MATLAB中将函数调用为:

>> testinputs(2,3)
Error using testinputs. MEX文件的输入数量无效。

>> testinputs(2,3,5)

>> [~,~] = testinputs(2,3,3)
Error using testinputs. MEX文件的输出数量无效。
           

 类似资料:
  • 文件 std::fs::File 本身实现了 Read 和 Write trait,所以文件的输入输出非常简单,只要得到一个 File 类型实例就可以调用读写接口进行文件输入与输出操作了。而要得到 File 就得让操作系统打开(open)或新建(create)一个文件。还是拿例子来说明 use std::io; use std::io::prelude::*; use std::fs::File;

  • 目录表 文件 使用文件 储存器 储存与取储存 概括 在很多时候,你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入,然后打印一些结果。我们可以分别使用raw_input和print语句来完成这些功能。对于输出,你也可以使用多种多样的str(字符串)类。例如,你能够使用rjust方法来得到一个按一定宽度右对齐的字符串。利用help(str)获得更多详情。 另一个常用的输入/输出类型

  • 我正在编写一个函数,该函数正在读取已处理的文件(文件名)。在已处理文件(open_file1)中,所有行都是元组。我的问题在于:为了使用该程序,我必须始终以命令输入作为输入文件名。如果用户在没有输入输入文件名的情况下输入团队标识符,即第三条elif语句,则程序崩溃。所以,我所做的是,在第三个elif语句中,我用一个os语句检查了输入文件的存在性。如果输入文件不存在,我写了一个else语句来请求另一

  • 我试图编写一个程序来检查一个数字在Java中是否是回文。我试图将int转换为String,并使用内置方法编写了这个逻辑。但我不知道为什么给定输入的输出不正确。

  • 主要内容:puts 语句,实例,gets 语句,实例,putc 语句,实例,print 语句,实例,打开和关闭文件,语法,读取和写入文件,实例,实例,实例,实例,实例,重命名和删除文件,实例,实例,文件模式与所有权,实例,文件查询,实例,实例,实例,实例,实例,实例,实例,实例,Ruby 中的目录,创建文件 & 临时目录,内建函数Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现。所有的 I/O 方法派生自 IO 类。 类 IO 提供了所有基础的方法,比如 read、

  • C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。 C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。 I/O 库头文件 下列的头文件在 C++ 编程中很重