MATLAB中如何运行c语言程序 10
#include"conio.h"#include<math.h>#include<stdlib.h>#include<time.h>#definen100#define...
#include "conio.h"
#include<math.h>
#include <stdlib.h>
#include <time.h>
#define n 100
#define a 179
#define k 15
#define x0 1
#define d 0
void suiji(int s[])
{
int i,flag[100]={0};
for(i=0;i<=12;i++)
{
int t=rand()%100;
if(flag[t]==0)
{
flag[t]=1;
s[i]=rand()%100;
}
}
}
/*主函数*/
void main()
{
int m=1,i,j, sj[13];
double e[n],v[n],sum[13];
/*白噪声*/
for(i=1;i<=k;i++)
{
m=m*2;
}
e[0]=a*x0/m;
sum[0]=0;
for(i=1;i<=n;i++)
{
e[i]=(a*(e[i-1]))-(int)(a*(e[i-1])); /* 经课本表2.1验证,正确*/
}
for(i=0;i<=62;i++) /* 63个正态分布的随机数 */
{
suiji(sj); /* 调用随机数子函数 */
for(j=1;j<=12;j++)
{
sum[j]=sum[j-1]+e[sj[j]];
}
v[i]=sum[12]-6;
} 展开
#include<math.h>
#include <stdlib.h>
#include <time.h>
#define n 100
#define a 179
#define k 15
#define x0 1
#define d 0
void suiji(int s[])
{
int i,flag[100]={0};
for(i=0;i<=12;i++)
{
int t=rand()%100;
if(flag[t]==0)
{
flag[t]=1;
s[i]=rand()%100;
}
}
}
/*主函数*/
void main()
{
int m=1,i,j, sj[13];
double e[n],v[n],sum[13];
/*白噪声*/
for(i=1;i<=k;i++)
{
m=m*2;
}
e[0]=a*x0/m;
sum[0]=0;
for(i=1;i<=n;i++)
{
e[i]=(a*(e[i-1]))-(int)(a*(e[i-1])); /* 经课本表2.1验证,正确*/
}
for(i=0;i<=62;i++) /* 63个正态分布的随机数 */
{
suiji(sj); /* 调用随机数子函数 */
for(j=1;j<=12;j++)
{
sum[j]=sum[j-1]+e[sj[j]];
}
v[i]=sum[12]-6;
} 展开
3个回答
展开全部
呵呵,看来我们有研究相同的问题吧
matlab是一种科学的计算语言,采用的是解释执行的方式,在配置比较水的机器(比如说我的),运行起来速度不敢恭维,但是他适合工程师用,快速建立起自己的运算平台,很多语法是类似c语言。你可以考察一下matlab的安装目录下extern下面lib库中的函数,可以发现,有很多的c语言代码,实际上,其内核有很多c的成分。
所以你应该可以明白了,可以运行,但是要把matlab的库函数包含在c编译库中。
你完全可以在extern中的example中,在matlab环境下面运行几个c代码试一试,当然所采用的指令是mex(把c语言用于matlab中),mcc把matalb代码转化为c代码,一些具体的参数,你可以用matlab强大的help工具获得。我们还可以一起探讨一下啊,给各邮箱之类的吧,呵呵,很乐意的
matlab是一种科学的计算语言,采用的是解释执行的方式,在配置比较水的机器(比如说我的),运行起来速度不敢恭维,但是他适合工程师用,快速建立起自己的运算平台,很多语法是类似c语言。你可以考察一下matlab的安装目录下extern下面lib库中的函数,可以发现,有很多的c语言代码,实际上,其内核有很多c的成分。
所以你应该可以明白了,可以运行,但是要把matlab的库函数包含在c编译库中。
你完全可以在extern中的example中,在matlab环境下面运行几个c代码试一试,当然所采用的指令是mex(把c语言用于matlab中),mcc把matalb代码转化为c代码,一些具体的参数,你可以用matlab强大的help工具获得。我们还可以一起探讨一下啊,给各邮箱之类的吧,呵呵,很乐意的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成MATLAB语言吧。
==============
你的这个C存在一些问题。主要是地址越界问题。
1.
for(i=1;i<=n;i++)
{
e[i]=(a*(e[i-1]))-(int)(a*(e[i-1])); /* 经课本表2.1验证,正确*/
}
e的声明是e[n],明显越界了。
2。
for(i=0;i<=62;i++) /* 63个正态分布的随机数 */
{
suiji(sj); /* 调用随机数子函数 */
for(j=1;j<=12;j++)
{
sum[j]=sum[j-1]+e[sj[j]];
}
v[i]=sum[12]-6;
}
v的声明是v[n],你上面的i已经达到了62也越界了。
==============
你的这个C存在一些问题。主要是地址越界问题。
1.
for(i=1;i<=n;i++)
{
e[i]=(a*(e[i-1]))-(int)(a*(e[i-1])); /* 经课本表2.1验证,正确*/
}
e的声明是e[n],明显越界了。
2。
for(i=0;i<=62;i++) /* 63个正态分布的随机数 */
{
suiji(sj); /* 调用随机数子函数 */
for(j=1;j<=12;j++)
{
sum[j]=sum[j-1]+e[sj[j]];
}
v[i]=sum[12]-6;
}
v的声明是v[n],你上面的i已经达到了62也越界了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我用MATLAB的时候是将matlab语言的程序编译成c++语言的。用的就是MATLAB本身自带的编译器。你不妨试试!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询