matlab的GUI界面简洁、明了,多用于人机的交互程序的编写,下面介绍一下具体步骤:
1打开matlab之后,新建一个GraphicalUserInterface(GUI)
2选择默认的BlankGUI(Default),点击ok
3之后进入GUI界面编辑界面,左边的侧边栏为界面的一些快捷按钮,按住鼠标左键可以拖到右侧编辑框,各个按钮一般都有自己作用
4把按钮拖过去,图为各种按钮示意
5按自己的需要选择按钮并排版
6在未放置按钮区域右键选择Editor
7进入代码编辑界面,在按钮的对应区域加入自己的代码
8点击上方绿色三角(或按F5)运行,调试通过
9调试通过即可保存m文件以及fig文件即可
追赶法是解决稀疏矩阵的 一种方法,但应该满足对角占优,否则不能进行计算,下面是程序,语言为java
[java] view plain copy
import javautilScanner;
/
Created by q on 2017/11/30
/
public class ChasingMethod {
private int num; //numb比矩阵的阶大一,不用下标是0的空间
private double a[];
private double b[];
private double c[];
private double y[];
public ChasingMethod(int num, double[] a, double[] b, double[] c, double[] y) {
thisnum = num;
thisa = a;
thisb = b;
thisc = c;
thisy = y;
}
public boolean check(){ //判断是否对角占优
if(Mathabs(b[1])<Mathabs(c[1])) return false;
for(int i = 2;i <num ;i++){
double temp = Mathabs(a[i])+ Mathabs(c[i]);
if(Mathabs(b[i])<temp){
return false;
}
}
if(Mathabs(b[num])<Mathabs(a[num])) return false;
return true;
}
public void calB(){
c[1] = c[1]10/b[1];
for(int i = 2;i <num ;i++){
c[i] = c[i] 10/ (b[i] - a[i] c[i-1]); //Ci = Ci/( bi-aiβi-1)
}
}
public void calY(){
y[1] = y[1]10 / b[1];
for(int i = 2;i <= num ;i++){
y[i] = (y[i] - a[i]y[i-1])10/ (b[i] - a[i] c[i-1]);
//fi = (fi -aiyi-1)/ ( bi-aiβi-1) (yi-1已存放在fi-1 ,βi-1已存入Ci-1)
}
}
public void calX(){
for(int i = num-1;i>0;i--){
y[i] = y[i] - c[i] y[i+1];//fi = fi -Ci fi+1
}
}
public void print(){
for(int i = 1;i<=num;i++){
Systemoutprintln(y[i]);
}
}
public static void main(String [] args){
Scanner scanner = new Scanner(Systemin);
int n;
Systemoutprintln("请输入X的个数");
n = scannernextInt();
double a[] = new double[n+1];
double b[] = new double[n+1];
double c[] = new double[n+1];
double y[] = new double[n+1];
Systemoutprintln("请输入A数组");
for(int i=2;i<=n;i++){
a[i] = scannernextDouble();
}
Systemoutprintln("请输入B数组");
for(int i=1;i<=n;i++){
b[i] = scannernextDouble();
}
Systemoutprintln("请输入C数组");
for(int i=1;i<=n-1;i++){
c[i] = scannernextDouble();
}Systemoutprintln("请输入Y数组");
for(int i=1;i<=n;i++){
y[i] = scannernextDouble();
}
ChasingMethod method = new ChasingMethod(n,a,b,c,y);
if(!methodcheck()){
Systemoutprintln("不满足对焦占优的条件,程序退出");
return;
}
methodcalB();
methodcalY();
methodcalX();
methodprint();
}
}
通过matlab仿真了Saleh-Valenzuela 信道模型,仿真图有四个子图,(a)和(b)分别示出的分布的群集抵达时间和射线到达时间,(c)表示S-V信道的脉冲响应,(d)图显示了信道功率分配
[MATLABprorar] - 该程序包包含大量的matlab程序,比如Euler解常微分方程、neville插值、newton插值、Taylor解微分方程、改进平方根法、追赶法!
1、追赶法是针对系数矩阵为三对角阵的方程组,因此是一种特殊的方程组此方法效率较高,不过不适用于一般的线性方程组。Gauss消去法是针对一般的线性方程组,与线性代数中的初等变换解线性方程组方法类似。
2、例程:
#include<stdioh>#define n 4
void main()
{
int i;
float a[n],b[n],c[n],d[n],u[n],l[n-1];
float x[n],y[n];
printf("请输入系数矩阵(按a[i],b[i],c[i],d[i]输入):\n");
for(i=0;i<n;i++)
{
scanf("%f",&a[i]); //a[n]和c[n]要少一项,使a[n-1]=c[n-1]=0,便于输入
scanf("%f",&b[i]);
scanf("%f",&c[i]);
scanf("%f",&d[i]);
}
u[0]=b[0];
for(i=1;i<n;i++)
{
l[i-1]=a[i-1]/u[i-1];
u[i]=b[i]-l[i-1]c[i-1];
}
/ for(i=0;i<n-1;i++)
printf("%f\n",l[i]);
for(i=0;i<n;i++)
printf("%f\n",u[i]);/
y[0]=d[0];
// printf("y1=%f\n",y[0]);
for(i=1;i<n;i++)
{
y[i]=d[i]-l[i-1]y[i-1];
// printf("y%d=%f\n",i+1,y[i]);
}
x[n-1]=y[n-1]/u[n-1];
for(i=n-2;i>=0;i--)
x[i]=(y[i]-c[i]x[i+1])/u[i];
for(i=0;i<n;i++)
printf("x%d=%f\n",i+1,x[i]);
}
for i=1:n-1
if (x(i)<x0)&&(x(i+1)>x0)
in=i;
end
end
你写这个是要干嘛? 换个变量就OK了。
点除与矩阵除法:
在书写程序的时候,点乘和矩阵乘法写错的时候再进行程序调适的
时候MATLAB会返回错误说明。
但是对于点除容易出现问题,下面以一个简单的例子说明这个问题:
比如我们要计算:
A = [1,1];
B = [2,1];
C = A/B;
上面的程序我们计算的是A与B的点除。但是由于疏忽而把点除“/”
以上就是关于如何编写matlab界面程序全部的内容,包括:如何编写matlab界面程序、python如何给追赶法编写程序、如何用matlab进行ieee 802.11p仿真等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)