我被告知要用八度音阶编译这个程序。我在使用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;
}
那么这个问题有什么解决方案吗? 非常感谢,对于我在帖子中发生的任何错误表示抱歉,因为我在使用octave和本论坛时都很新。
编辑(在Alter Mann的回答之后):所以这是我的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:错误:'Matrix'未声明(首次使用此功能)
standalone.c:8:错误:(每个未声明的标识符仅报告一次 standalone.c:8:错误:对于它出现的每个函数。)
standalone.c:8:错误:在'a_matrix'之前预期';' standalone.c:10:错误:'octave_idx_type'未声明(首次使用此功能)
standalone.c:10:错误:预期';'在'i'之前 standalone.c:10:错误:'我'未申报(首次使用此功能)
standalone.c:12:错误:预期';'在'j'之前 standalone.c:12:错误:'j'未声明(首次使用此功能)
standalone.c:14:警告:隐式声明函数'a_matrix'
standalone.c:17:错误:'a_matrix'未声明(首次在此函数中使用)
答案 0 :(得分:1)
#include <iostream>
应该是
#include <stdio.h>
和
std::cout << a_matrix;
应该是
printf("%d", a_matrix);
但是<octave/oct.h>
不能用于C:
A.1.1 Getting Started with Oct-Files
第一个关键线是#include 提供C ++ oct文件所需的大多数定义。注意 octave / oct.h是一个C ++标题,不能直接#include'ed 在C源文件中,也不是任何其他语言。
界面以支持C ++,C和C语言为中心 Fortran语言。 Octave本身是用C ++编写的,可以调用外部C ++ / C. 代码通过其原生的oct文件接口。 C语言也是 通过mex-file接口支持兼容性 MATLAB。 Fortran代码最容易通过oct文件到达 接口