在 C 中使用八度内置函数

Using octave built-in function in C

本文关键字:八度 内置 函数      更新时间:2023-10-16

我被告知用八度的C编译这个程序。在使用Octave之前,我已经成功地编译了一个简单的C程序,但是对于这个程序,我已经尝试过,即使我尝试将一些C++语言更改为C语言,我也不知道如何用C语言编译它。

 #include <iostream>
 #include <octave/oct.h>
 int main (void)
 {
 std::cout << "Hello Octave world!n";
 int n = 2;
 Matrix a_matrix = Matrix (n, n);
 for (octave_idx_type i = 0; i < n; i++)
 for (octave_idx_type j = 0; j < n; j++)
 a_matrix(i,j) = (i + 1) * 10 + (j + 1);
 std::cout << a_matrix;
 return 0;
 }

那么这个问题有什么解决方案吗?非常感谢您,很抱歉我在帖子中犯的任何错误,因为我在使用八度和这个论坛方面很陌生。

编辑(在改变曼恩的答案之后):

所以这是我的C程序代码

#include <stdio.h>
int main(void)
{
        printf("Hello Octave World!");
    int n=2;
    Matrix a_matrix = Matrix (n, n);
    for (octave_idx_type i=0; i<n; i++)
    {
            for (octave_idx_type j=0; j<n; j++)
            {
                    a_matrix(i,j) = (i+1) * 10 + (j+1);
            }
            printf ("%d", &a_matrix);
    }
    return 0;
}

但是我得到了这个错误

standalone.c:在函数"main"中:
standalone.c:8:错误:"矩阵"未声明(在此函数中首次使用)
standalone.c:8:错误:(每个未声明的标识符仅报告一次
standalone.c:8:错误:对于它出现的每个函数。
standalone.c:8:错误:在"a_matrix
"之前应为";" standalone.c:10:错误:"octave_idx_type"未声明(首次在此函数中使用)
standalone.c:10:错误:预期在"i"
之前";" standalone.c:10:错误:"i"未声明(在此函数中首次使用)
standalone.c:12:错误:在"j"
之前应为";" standalone.c:12:错误:"j"未声明(在此函数中首次使用)
standalone.c:14:警告:函数"a_matrix"
的隐式声明 standalone.c:17:错误:"a_matrix"未声明(首次在此函数中使用)

#include <iostream>

应该是

#include <stdio.h>

std::cout << a_matrix;

应该是

printf("%d", a_matrix);

但是<octave/oct.h>不能在C中使用:

A.1.1 Oct文件入门

第一条关键线是 #include 提供 C++ OCT 文件所需的大多数定义。注意 八度/八度 H 是C++标题,不能直接 #include 在 C 源文件中,或任何其他语言中。

另类:

该界面以支持语言为中心,C++,C和 福特兰。Octave本身是用C++编写的,可以调用外部C++/C 通过其本机 OCT 文件接口进行编码。C语言也是 通过 MEX 文件接口提供支持,以兼容 马特拉布。Fortran代码最容易通过oct文件访问 接口。