MATLAB笔记——程序设计

2023-10-31

m文件

命令式文件

>> %logotu.m
>> load logo
>> surf(L, R), colormap(M)
>> n=size(L, 1)

n =

    43

>> axis off
>> view(-37.5, 30)
>> title('Lift is too short to spend writing DO loops')

在这里插入图片描述

函数式文件

demo_5_2_fibfun.m文件

function f = demo_5_2_fibfun( n )
% FIBFUN For calculating Fibonacci numbers.
% Incidengtally, the name Fibonacci comes
%from Filius Bonassi, or"son of Bonassus"
% 文件名与函数名要一一对应。
if(n>2)
    f = demo_5_2_fibfun(n-1) + demo_5_2_fibfun(n-2);
else
    f = 1;
end

调用结果:

>> demo_5_2_fibfun(17)

ans =

        1597

调用help获取函数说明

>> help demo_5_2_fibfun
  FIBFUN For calculating Fibonacci numbers.
  Incidengtally, the name Fibonacci comes
 from Filius Bonassi, or"son of Bonassus"
  文件名与函数名要一一对应。

查看

>> lookfor fib
demo_5_2_fibfun                - FIBFUN For calculating Fibonacci numbers.
fibodemo                       - Used by SINGLEMATH demo.

判断某一年是否为闰年。

function isleapyear(year)
sign=0;
if rem(year,4)==0
   sign=sign+1;
end
if rem(year,100)==0
       sign=sign-1;
end
if rem(year,400)==0
       sign=sign+1;
 end
 if sign==1
      fprintf('%4d year is a leap year.\n',year)
  else 
      fprintf('%4d year is not a leap year.\n',year)
end

调用

>> isleapyear(2021)
2021 year is not a leap yea

控制语句

for循环

demo_5_4_Vandermonde.m文件中的代码

function a = demo_5_4_Vandermonde( t )
% t=[-1 0 1 3 5]
n=max(size(t))
for j=1:n
    for i=1:n
        a(i,j)=t(i)^(n-j);
    end
end

调用

>> b=demo_5_4_Vandermonde(t)

n =

     5


b =

     1     1     1     1     1
    16     8     4     2     1
    81    27     9     3     1
   256    64    16     4     1
   625   125    25     5     1

while循环

demo_5_4_expm.m文件

function [ e ] = demo_5_4_expm( a )
% a=[2 3;3 4]
% expm(a)=1+a+a.^2/2! 
%                  + a.^3/3! + ...
e=zeros(size(a));
f=eye(size(a));
k=1;

while norm(e+f-e,1)>0
    e=e+f;
    f=a*f/k;
    k=k+1;
end

调用

>> a = [2 3;3 4]

a =

     2     3
     3     4

>> demo_5_4_expm(a)

ans =

  162.7871  224.6754
  224.6754  312.5707

if语句

代码

>> % Script file: triarea.m
% This program is to calculate the area of a triangular
A=input('请输入三角形的三条边(数组形式):');
    if A(1)+A(2)>A(3) & A(1)+A(3)>A(2) & A(2)+A(3)>A(1)
       p=(A(1)+A(2)+A(3))/2;
       s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));
       disp(s);
    else
       disp('不能构成一个三角形。')
    end

运行结果

请输入三角形的三条边(数组形式):[3 4 5]
    6

switch语句

代码

>>  num=input('请输入一个数:');
switch num
  case -1
    disp('I am a teacher.');
  case 0
    disp('I am a student.');
  case 1
    disp('You are a teacher.');
  otherwise
    disp('You are a student.');
end

运行

请输入一个数:2
You are a student.

鸡兔同笼问题:
鸡兔同笼,头共36,脚共100。求鸡、兔各多少?

>> i=1;
while 1
    if rem(100-i*2,4)==0&(i+(100-i*2)/4)==36
        break
    end
    i=i+1; 
end
a1=i
a2=(100-2*i)/4

a1 =

    22


a2 =

    14

函数变量及变量作用域

通过varargin参数,用户可以输入任意多个学生的数学、英语、语文的成绩,然后求各科的平均值。

function [ mathAvg,engAvg,chnAvg ] = test532( varargin )
len = length(varargin);
mathAvg=0;engAvg=0;chnAvg=0;
for i=1:len
    mathAvg = mathAvg+varargin{i}(1);
    engAvg = engAvg+varargin{i}(2);
    chnAvg = chnAvg+varargin{i}(3);
end
mathAvg = mathAvg / len
engAvg = engAvg / len
chnAvg = chnAvg / len
end

调用

>> test532([1 2 3],[2, 3, 4])

mathAvg =

    1.5000


engAvg =

    2.5000


chnAvg =

    3.5000


ans =

    1.5000

子函数与局部函数

demo_5_11.m

function c = demo_5_11( a, b )
c = test1( a, b )*test2( a, b )
end
 
function c = test1( a, b )
c=a+b
end
 
function c = test2( a, b )
c=a-b
end

调用

>> demo_5_11(1, 2)

c =

     3


c =

    -1


c =

    -3


ans =

    -3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB笔记——程序设计 的相关文章

  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 我需要转义该 MATLAB 字符串中的字符吗?

    我想在 MATLAB 中调用以下 bash 命令 grep Up to test linux vision1 1 log awk print 7 I use system 在MATLAB中 但结果有错误 gt gt status strin
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 在matlab中绘制给定区域内(两个圆之间)的向量场

    我想在 Matlab 中绘制下面的向量场 u cos x x 0 y y 0 v sin x x 0 y y 0 我可以在网格中轻松完成 例如 x 和 y 方向从 2 到 2 x 0 2 y 0 1 x y meshgrid 2 0 2 2
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 如何将复杂的 csv 文件导入到 Matlab 中的数值向量

    我想知道我们应该如何读取由字符串 双精度数和字符等组成的复杂 csv 文件 例如 您能否提供一个可以在此 csv 文件中提取数值的成功命令 Click here http www ecb europa eu stats money yc d
  • 如何在 MATLAB 中绘制纹理映射三角形?

    我有一个三角形 u v 图像中的坐标 我想在 3D 坐标处绘制这个三角形 X Y Z 与图像中的三角形进行纹理映射 Here u v X Y Z都是具有三个元素的向量 代表三角形的三个角 我有一个非常丑陋 缓慢且令人不满意的解决方案 其中我
  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 如何使用SIFT算法计算两幅图像的相似度?

    我已经用过SIFT http en wikipedia org wiki Scale invariant feature transform实施安德里亚 维达尔迪 http www vlfeat org overview sift html
  • 加到 100 的随机数:Matlab

    我将人口数量分成不同的矩阵 现在想使用随机数测试我的代码 快速提问 谢谢你们提前的帮助 如果我使用 100 rand 9 1 使这 9 个数字相加等于 100 的最佳方法是什么 我想要 9 个 0 到 100 之间的随机数 加起来为 100
  • Matlab:如何在没有颜色分级的情况下绘图?

    我的朋友制作了一个脚本来处理大量数据并绘制各种图表 但是当他运行脚本时 图表根据图例具有不同的颜色 当我这样做时 所有图表都相似 颜色渐变从黑色到红色的 见图 为什么不同以及如何获得不同颜色的图表 带有颜色分级图的 2D 绘图 figure
  • 四边形到矩形变换

    我想将四边形图像转换为我知道这些顶点的矩形图像 例如 在下图中 我知道坐标 X1 Y1 X4 Y4 和 x1 y1 x2 y2 并且我想将其转换为矩形 如何获得与四边形图像中的 X Y 坐标相对应的矩形图像中的 x y 坐标 gt Y gt
  • 各向异性扩散二维图像[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在二维图像上使用各向异性扩散 我想使用 python 但不介意使用 matlab 或 c 他们有我
  • MATLAB:按扩展名从文件夹加载文件

    将具有相同扩展名的文件夹中的所有文件加载到 MATLAB 中的最简单方法是什么 我以前的解决方案 Will load a file if its filename is provided USAGE Best save data to a
  • 使用循环绘制多个结果

    我想使用 for 循环绘制原始和窗口的结果 10 50 100 全部在一个图中这是我得到的情节 https i stack imgur com wAixM png below is my code Read data in data csv
  • 使用 mle() 估计自定义分布的参数

    我有以下代码 我希望估计自定义分布的参数 有关分发的更多详细信息 https stackoverflow com q 56522903 4930944 然后使用估计的参数 我想看看估计的 PDF 是否类似于给定数据的分布 它应该与给定数据的
  • 如何在 Matlab 中绘制连通性/邻接矩阵图?

    我想在 MATLAB 中绘制网络 电网 的结构图 我有一个包含每个分支的往返节点的列表 我没有节点的坐标 并且每次模拟的系统拓扑都会发生变化 我还需要能够为各种线路 节点分配不同的颜色 以可视化电压问题或过载等 类似于我使用传记 下面的代码

随机推荐

  • OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性

    OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性 OpenText Exceed TurboX 是一种安全的虚拟桌面解决方案 可实现现代混合工作 利用 Exceed TurboX 混合云
  • 2048游戏C语言代码

    听说2048游戏实现起来很easy 所以今天就试了试 确实不太难 要想编的很成功 也不是太容易 有很多细节需要考虑 下面是我自己设计的代码 估计里面会漏洞百出 希望路过大神能指点一二 include
  • 学习笔记-基数排序

    基数排序 将一个一维数组从大到小排列 基数排序是桶排序的扩展 它是一种稳定的排序方法 也就是说 排序之前相同大小的数字的位置次序在排序后并没有发生改变 同时 基数排序是一种用空间换时间的排序方法 当数据量过大时 java的堆内存耗尽 方法就
  • 如何使用python读取excel(一)

    在进行操作前 我们先熟悉一下excel表格的基本术语 工作簿 workbook 包含多个工作表的 表单 worksheet 指一个工作簿里面的每个表单 行 row 列 column 单元格 cell 这里我们使用openpyxl读取数据 查
  • Win10搭建Docker Desktop并安装vim

    Win10搭建Docker Desktop 1 介绍 Docker Desktop是适用于Windows的Docker桌面 是Docker设计用于在Windows 10上运行 它是一个本地 Windows 应用程序 为构建 交付和运行doc
  • 怎么查看虚拟机的IP地址?

    第一个方法ifconfig 先登录自己的虚拟机账号 进入桌面 然后右键 点击Open Terminal 输入ifconfig 然后回车 就可以了 第二种方法 也是上面的步骤 输入 ip addr也是同样的效果
  • 【Java基础篇

    个人主页 兜里有颗棉花糖 欢迎 点赞 收藏 留言 加关注 本文由 兜里有颗棉花糖 原创 收录于专栏 JavaSE primary 本专栏旨在分享学习JavaSE的一点学习心得 欢迎大家在评论区讨论 继承允许一个类继承另一个类的属性和方法 并
  • 通过Python调用禅道API

    禅道API接口 非REST接口 调试版本 11 3 百度出来的100 都用不了 本篇除外 于是自己修改了网上代码 先get session 再post登录 最后调用产品列表验证 实测通过 1 import requests 2 import
  • 2 应用层 - 应用层协议原理

    研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序 目录 1应用层协议原理 1 1 网络应用程序体系结构 1 2 进程通信 1 3 运输层协议选择 1 4 因特网提供的运输服务 1 4 1 TCP服务 1 4 2 U
  • unity如何现实增强_增强型世博会:Unity开发人员将如何成为未来的一部分

    unity如何现实增强 Unity is invested in Augmented Reality More than 91 of Hololens applications and 64 of mobile AR apps are ma
  • 200. Number of Islands

    求岛屿的数量 求岛屿的数目情况 主要有两种情况 解析 这道题目的本质问题其实是想就求 不相连的1 的块数目情况 在查找的过程当中 相邻的1是当做只有一块的基本情况 要去何必周边的1 情况 就是标记为是岛屿就行了这种情况下 就是利用一个一直回
  • Springboot工程制作镜像并推送到阿里云

    springboot工程 我们在这里找了一个原来的项目工程 项目结构如下 Dockerfile文件编写 FROMjava 8 VOLUME tmp ADDjwordpress web jarweb jar ENTRYPOINT java D
  • char取值范围java_Java个人学习笔记-数据类型及取值范围

    一 Java基本数据类型 在JAVA中一共有八种基本数据类型 他们分别是 byte short int long float double char boolean 取值范围见下图 二 不同数据类型之间相互赋值 范围小的可以赋值给大的 大的
  • weka cfsSubsetEvalue.java 中文注释

    This program is free software you can redistribute it and or modify it under the terms of the GNU General Public License
  • 电力系统分析设计仿真 基于遗传算法的最优潮流 图为以IEEE30节点的输电网为研究对象 以系统发电成本最小为目标函数 以机组出力为优化变量 通过优化求解得到最佳机组出力

    电力系统分析设计仿真 基于遗传算法的最优潮流 图为以IEEE30节点的输电网为研究对象 以系统发电成本最小为目标函数 以机组出力为优化变量 通过优化求解得到最佳机组出力 YID 9350673486068810
  • 【已解决】adb connect x.x.x.x:5555报错由于 目标计算机积极拒绝,无法连接

    原因 安卓系统未打开adb网络调试功能 通过USB方式连接到安卓系统设置即可 解决方案 通过USB线连接安卓机和电脑 确保安卓系统中的开发者选项打开 USB调试项也是是开启的 通过cmd打开命令行窗口界面 输入adb devices 能看到
  • 【Pytorch with fastai】第 5 章 :图像分类

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 16种常用的数据分析方法-方差分析

    方差分析 Analysis ofVariance 简称ANOVA 又称 变异数分析 又叫F检验 是R A Fisher发明的 用于两个及两个以上样本均数差别的显著性检验 方差波动来源 由于各种因素的影响 研究所得的数据呈现波动状 而方差分析
  • 编码器测速原理与实现

    目录 一 测速原理 二 CubeMX配置编码器模式 三 利用外部中断采集脉冲 一 测速原理 通常情况下编码器旋转一周会输出固定的脉冲数 即编码器的分辨率 通过测量固定时间T内编码器输出的脉冲数即可求得电机的转速 假设编码器的分辨率为P T时
  • MATLAB笔记——程序设计

    MATLAB程序设计 m文件 命令式文件 函数式文件 控制语句 for循环 while循环 if语句 switch语句 函数变量及变量作用域 子函数与局部函数 m文件 命令式文件 gt gt logotu m gt gt load logo