如何编写matlab界面程序

如何编写matlab界面程序,第1张

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仿真等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9758495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存