如何用matlab解数独编写数独游戏

  下面以一个线性方程组的求解过程为例,介绍通过Matcom实现VC对Matlab程序的调用,运行环境:Win2000、Matlab6.1、Matcom4.5、Visual C++6.0
  (1)Matlab运行环境中编写程序equation.m,其代码如下:
%equation 求解线性方程组的解
%线性方程组形如:A*X = B
function X = equation(A, B)
X = A\B;
  (2)这里以一个简单的控制台程序为例,其它程序基本相同。在VC环境中建立一个名为Test的Win32 Console Application工程。
  (3)点击Visual Matcom工具栏上的m++图标,选择保存过的Matlab文件equation.m进行转化。如果看到的转化信息提示没有错误就可以观察到此时在FileView标签中多了m-files,C++files created from m-files,Matrix&lib&等文件。并且该工程目录下增加了equation.h,equation.cpp, k,equation.r等的4个文件。这时会在VC中出现一个转换完毕的文件,文件中如果报告有错误就要考虑是否程序有问题,可以双击C++files文件夹下的equation.m进行修改,再重新转化直到没有错误报告为止。
  (4)在Test工程下建立一个文件test.cpp调用转化的Matlab函数,代码为:
#include "stdio.h"
#include "matlib.h" //提供转化后C++代码中使用的数据类型,函//数原型及常数
#include "equation.h"
void main()
{
 /*解线性方程组:
 X =
 */
 initM(MATCOM_VERSION); //初始化matlib库
 Mm a,b,x; //使用矩阵类Mm构造矩阵a,b,x.
 a = (BR(1),2,3,semi,4,5,6,semi,7,8,1);
 //给矩阵a赋值,BR是Matrix&LIB&库的一个
 //宏,用于定义一个矩阵的开始;semi是库的//一个常量,用于分隔不同行的矩阵元素
 b = zeros(3,1); //初始化矩阵b为零矩阵3行1列
 b(1,1) = 37; b(2,1) = 85; b(3,1) = 69; //给矩阵b赋值
 x = equation(a,b); //调用转化的函数,求解线性方程组的解
 for (int i = 1; i &=
ws(); i++) //把解矩阵X的元素显示出来
 {
  for (int j=1;j&= ls();j++)
   printf("x(%d,%d)=%f\n",i,j,x.r(i,j));
 }
 exitM(); //结束对matlib库的调用
 
}
  注意:程序中涉及到了两个成员函数.rows()和.cols(),它们分别返回矩阵的行数和列数;x.r(i,j)代表矩阵x的第i行第j列的元素。
  (5)编译运行后结果为x(1,1) = 3.000000 x(2,1) = 5.000000 x(3,1) = 8.000000与实际结果一致。
  总结:如果需要转换的.m文件不是一个函数,只是一些Matlab命令的集合,则要在工程目录下找到转换文件的.cpp文件,将其中的C代码拷贝到需要调用它的函数里面。Matcom克服了mcc命令只能编译一个独立.m文件的缺点,当所编译的.m文件依赖于其他.m文件时,只要把被调用的.m文件与要编译的.m文件放在同一目录下,生成的被调用文件的.h和.cpp文件插入到VC开发的工程中就可以了。
  上面只是一个简单的控制台工程的例子,我们也可以建立其它类型的工程,只要在需要调用转换后函数的程序中包含matlib.h并且在响应函数中初始化matlib库initM(MATCOM_VERSION);结束调用后做结束工作exitM();就可以了。
  结束语
  本文讨论了VC与Matlab的混合编程,主要集中讨论在VC中调用Matlab的实现方案。通过一个Matcom编译实现的例子我们看到,利用Visual Matcom转换代码非常方便,生成的代码可读性好,而且还支持多数图形函数,基本上使Matlab和VC能够得到充分的发挥。作者在海洋遥感图像处理中使用这种方法来提高程序的执行速度,取得了非常理想的效果。它不仅解决了Matlab的解释执行方式带来的执行速度过慢的缺陷,更重要的是它完全脱离了Matlab系统,当代码被编译成可执行程序后,又可大大提高程序的安全性。
您的举报已经提交成功,我们将尽快处理,谢谢!
直接在主界面上面调用该函数就可以了
程序写好后,去认无误,上方(菜单栏)有个小人,貌似是在跑的,鼠标指到那儿会有提示(中文为:运行或提交,英文为:submit或run)点击就可以,前提保证程序没有...
MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB是矩阵实验室(Matrix Laboratory)...
m = rand(3,3)
s='用MATLAB循环程序计算出多个值'
xlswrite('m.xls',m,s);
然后在你的workspace里会有一个...
大家还关注利用Matlab优化工具箱解数独问题 | 了凡春秋USTC 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
MATLAB编程解决数独问题
下载积分:30
内容提示:MATLAB编程解决数独问题
文档格式:PDF|
浏览次数:112|
上传日期: 05:42:55|
文档星级:
该用户还上传了这些文档
MATLAB编程解决数独问题
官方公共微信&>&&>&&>&&>&求解数独的matlab程序
求解数独的matlab程序
上传大小:7KB
非常智能的求解数独的MATLAB程序。无任何BUG
综合评分:4(1位用户评分)
所需积分:1
下载次数:16
审核通过送C币
创建者:aslanchen
创建者:oscer2016
创建者:goto1997
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
求解数独的matlab程序
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
automotiver
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:

我要回帖

更多关于 c语言 编写数独游戏 的文章

 

随机推荐