name = input('学生姓名:\n','s');
score = input('学生成绩:\n');
if score>100 || score < 0
disp('输入错误')
return
end
if score>=90
s5=5;
elseif score >= 75
s5=4;
elseif score>= 60
s5=3;
elseif score>=40
s5=2;
else
s5=0;
end
fprintf('学生:%s ,5分制成绩为%d。\n',name,s5)
新建一个m文件,file-》new-》m—file,将下面程序粘贴并保存为
wholeaves
然后运行即可。
function wholeaves
%求解从一到n个人围成一圈,顺序排号。
%从第一个人开始报数(从1到m报数),凡报到m的人退出 ,并且下一个从1重新开始报数,求出出圈人的顺序。
n=input('请输入人数n: ');
m=input('请输入间隔m: ');
d=0;%
count=0;
a=[1:n];
while d<n
for i=1:n
if a(i)>0
count=count+1;
end
if count==m,
a(i)
a(i)=0;
count=0;
d=d+1;
end
end
end
一、生成独立可执行的程序(exe文件)步骤
1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++60,我基于VS 2003实现。
2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;
注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc
-mfilaname;
4、安装<matlab
path>\toolbox\compiler\deploy\win32目录下的MCRInstaller。
二、脱离matlab运行可执行程序
MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
<matlab path>
\toolbox\compiler\deploy\win32
文件名为MCRInstallerexe。可将其拷贝到自己的文件夹中,(70以前的版本是mglinstallerexe)。
在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
在其它没有安装matlab的机器上运行exe文件前:
首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
其次是要将“MCRinstallerexe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
如果没有,也可手动安装,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
注:在安装过程中会d出让安装MicrosoftNETFramework可以不用安装。
最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
消除运行MATLAB生成的exe程序的dos黑屏的办法
基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
方法一: 在命令窗口输入:
cd(prefdir)
edit compoptsbat
在打开的文件最后添加以下语句:
AVC环境下:
set
LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
BLCC环境下:
set LINKFLAGS=%LINKFLAGS%
-subsystemwindows
C Borland:
set LINKFLAGS=%LINKFLAGS% -aa
保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了
方法二:使用suppress工具:
下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppressini文件,用记事本打开,然后将
其中“Name=testexe”中textexe的改为你生成的exe文件名。将suppressexe(有个关盘和显示器的图标),改后的
suppressini放到你生成的exe的同目录下。执行suppressexe或者您自己生成的exe可以了。当然您可以自己修改
suppressexe的名字,改为您自己想要的名字。
其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。
方法二的缺点就是要同时存在您生成的exe以及supressexe,必须在同一目录下。
clc
clear
x=-10:05:10;
for i=1:41
if x(i)>=0
y(i)=-3x(i)^2+5;
else
y(i)=3x(i)^2+5;
end
end
y
void __fastcall TForm1::Button1Click(TObject Sender)
{
TList L;
int N[7];
long T=time(0);
int iIndex;
T=T % 1000000;
L=new TList();
try
{
Label8->Caption="00";
Label9->Caption="00";
Label10->Caption="00";
Label11->Caption="00";
Label12->Caption="00";
Label13->Caption="00";
Label14->Caption="00";
Application->ProcessMessages();
iIndex=0;
for (int i = 0; i < 47; i++) {
L->Add((void )(i+1));
//Memo1->Lines->Add(i+1);
}
for (int m = 0; m <= 6; m++) {
for (int i = 0; i <= T; i++) {
random(time(0));
int j=rand();
int k=j % L->Count;
int iTmp=(int)L->Items[0];
L->Items[0]=L->Items[k];
L->Items[k]=(void )iTmp;
}
//Memo1->Lines->Add("-----------------------------");
//for (int i = 0; i <= L->Count-1; i++) {
// Memo1->Lines->Add((int)L->Items[i]);
//}
random(time(0));
int j=rand();
j=j%L->Count;
N[m]=(int)L->Items[j];
L->Delete(j);
AnsiString s;
switch (m) {
case 0:{
ssprintf("%22d",N[0]);
Label8->Caption=s;
Application->ProcessMessages();
Sleep(10);
break;
}
case 1:{
ssprintf("%22d",N[1]);
Label9->Caption=s;
Application->ProcessMessages();
Sleep(10);
break;
}
case 2:{
ssprintf("%22d",N[2]);
Label10->Caption=s;
Application->ProcessMessages();
Sleep(10);
break;
}
case 3:{
ssprintf("%22d",N[3]);
Label11->Caption=s;
Application->ProcessMessages();
Sleep(10);
break;
}
case 4:{
ssprintf("%22d",N[4]);
Label12->Caption=s;
Application->ProcessMessages();
Sleep(10);
break;
}
case 5:{
ssprintf("%22d",N[5]);
Label13->Caption=s;
Application->ProcessMessages();
Sleep(10);
break;
}
case 6:{
ssprintf("%22d",N[6]);
Label14->Caption=s;
Application->ProcessMessages();
Sleep(10);
break;
}
default:
;
}
}
//ssprintf("%22d-%22d-%22d-%22d-%22d-%22d-%22d",N[0],N[1],N[2],N[3],N[4],N[5],N[6]);
//Edit1->Text=s;
}
__finally
{
L->Free();
}
}
以上就是关于matlab习题,自编程序实现,百分制与五分制的对应转换。全部的内容,包括:matlab习题,自编程序实现,百分制与五分制的对应转换。、帮我编一个matlab程序、如何将MATLAB程序编译成独立可执行的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)