精华内容
下载资源
问答
  • a=input('请输入第一个数值:'); b=input('请输入第二个数值:'); c=input('请输入第三个数值:'); m=0; if a<b m=a; a=b; b=m; end if a<c m=a; a=c; c=m; end if b<c m=c; c=b; b=m; end ...
    a=input('请输入第一个数值:');
    b=input('请输入第二个数值:');
    c=input('请输入第三个数值:');
    m=0;
    if a<b
        m=a;
        a=b;
        b=m;
    end 
     if a<c
        m=a;
        a=c;
        c=m;
     end
     if b<c
        m=c;
        c=b;
        b=m;
     end 
    a
    b
    c
    
    请输入第一个数值:3
    请输入第二个数值:6
    请输入第三个数值:7
    a=
       7
    b=
       6
    c=
       3
    
    展开全文
  • matlab整数类型

    2020-05-09 17:15:40
  • 程序控制语句1顺序结构1.1数据的输入1.2数据的输出1.3程序暂停2选择结构2.1 if语句实现选择结构2.1.1单分支if语句2.1.2双分支if语句2.1.3多分支if语句2.2 swich语句实现选择结构3循环结构3.1 for语句实现循环结构 ...

    在这里插入图片描述

    • 程序的三种基本结构:顺序结构、选择结构、循环结构
    • 程序文件分为脚本文件和函数文件
    区分
    脚本文件是可以在命令行窗口直接执行的文件,也叫作命令文件;
    函数文件是定义一个函数,不能直接执行,而必须以函数调用的方式来调用它。

    例:
    创建脚本文件和函数文件(可用edit命令创建)在这里插入图片描述

    1顺序结构

    在这里插入图片描述

    • 按照数据出现的顺序进行处理

    例:
    线 段 A B , A ( 1 , 1 ) , B ( 4.5 , 4.5 ) , 求 A B 的 长 度 以 及 黄 金 分 割 点 C 的 坐 标 线段AB,A(1,1),B(4.5,4.5),求AB的长度以及黄金分割点C的坐标 线AB,A(1,1),B(4.5,4.5),ABC

    a=input('a=');
    b=input('b=');
    c=a+0.618*(b-a);
    s=abs(a-b);       %取模(abs函数:求实数的绝对值、复数的模、字符串的ASCII码值。)
    disp(s)
    disp(c)
    

    1.1数据的输入

    调用格式
    A=input(提示信息,选项)
    >>A=input('请输入变量A的值:')
    请输入变量A的值:100           %运行提示键盘输入
    
    A =
    
       100
    

    1.2数据的输出

    调用格式
    disp(输出项)
    >>s='Hello World!';
    s =
    
    Hello World!
    >>disp(s)
    
    Hello World!  %输出格式无变量的名字
    

    1.3程序暂停

    调用格式
    pause(延迟秒数)
    • 如果省略参数延迟秒数,则程序暂停,直到用户按任意键结束暂停
    • 若要强行中止程序的运行,可使用ctrl+c命令

    一个程序一般包括

    • 输入原始数据
    • 对原始数据进行处理
    • 输出处理结果

    2选择结构

    又称为分支结构,是根据给定的条件是否成立来决定程序的执行流程

    在这里插入图片描述

    • if 选择结构
    • switch 选择结构

    2.1 if语句实现选择结构

    2.1.1单分支if语句

    格式

    if  条件
        语句组
    end
    
    • 条件:关系运算或逻辑运算来表结果是一个标量或者矩阵
      1.当条件结果为标量时,非零表示条件成立表示条件不成立
      2.当条件结果为矩阵时,如果矩阵是非空矩阵,且不包含零元素,则条件成立,否则条件不成立。
    • 语句组:一条或多条语句

    2.1.2双分支if语句

    格式

    if  条件
        语句组1
    else
        语句组2
    end
    

    例:
    输入一个整数,若为奇数则输出其平方根,否则输出其立方根。

    x = input('Please input a number:'); 
    if rem(x,2) == 1     %取余 => rem(x,2)
        s = sqrt(x);
    else
        s = x ^ (1/3);   % => power(x,1/3)
    end
    disp(s);
    

    2.1.3多分支if语句

    格式

    if  条件1
        语句组1
    else if 条件2
            语句组2
         ···
    else if 条件n
            语句组n
    end
    

    例:
    输入一个字符。
    若为大写字母,则输出其对应的小写字母;
    若为小写字母,则输出其对应的大写字母;
    若为数字字符,则输出其对应数的平方;
    若为其他字符,则原样输出。

    x=input('请输入一个字符:','s'); %定义输入的字符为s
    if x>='A'& x<='Z'
        y=char(x+('a'-'A'));      %lower(x) char函数把ASCII码矩阵转换为字符串矩阵
    else if x>='a'& x<='z'
            y=char(x-('a'-'A'));  %upper(x)
        else if x>='0'
                y=(str2double(x))^2; %把字符串转换为数值
            else
                y=x;
            end
        end
    end
    disp(y)
    

    2.2 swich语句实现选择结构

    格式

    switch 表达式
     case  结果表1
           语句组1
     case  结果表2
           语句组2
         ···
     case  结果表n
           语句组n
     otherwise
           语句表m
     end
    
    • switch表达式其值可以列举
    • case结果表为switch表达式的取值,当取值有多个时,用单元数据表示

    例:输入一个英文单词,判断其是否以元音字母开头

    x=input('请输入一个英文单词:','s');
    switch x(1)
        case {'A','E','I','O','U','a','e','i','o','u'}; %多个结果组成一个单元数据
            disp ('以元音字母开头');
        otherwise
            disp ('以辅音字母开头');
    end
    

    3循环结构

    循环结构又称为重复结构:重复执行某些条件(循环体)

    3.1 for语句实现循环结构

    • 确定循环次数
      格式
    for 循环变量=表达式1(初):表达式2(步长):表达式3(终)/矩阵表达式
        循环体语句
    end
    
    • 表达式2可以省略
      在这里插入图片描述

    说明:

    • for语句针对向量的每一个元素执行一次循环体。向量有多少个元素,for语句就执行多少次循环体语句。
    • 退出循环后,循环变量的值就是向量的最后一个元素值。
    • 当向量为空时,循环体一次也不会执行。例如:k=1: -1:10就是一个空向量

    例:
    求Π的值(pai/4=1-1/3+1/5-1/7+…+(-1)^(n+1)/2n-1)

    y=0;
    g=1;
    n=input('n=');
    for i=1:n
        f=g*1/(2*i-1);
        y=y+f;
        g=-g;
    end
    pai=4*y
    
    %利用矩阵运算
    n=input('n=');
    x=1:2:(2*n-1);
    y=(-1).^(2:n+1)./x;  %y是一个矩阵
    pai=4*sum(y) %sum向量求和
    
    %定积分求Π/4
    a=0;
    b=1;
    n=input('n=');
    h=(b-a)/n;
    x=a:h:b;
    f=sqrt(1-x.*x);
    s=[];
    for k=1:n
        s1=(f(k)+f(k+1))*h/2;
        s=[s,s1];
    end
    pai=4*sum(s)
    
    %蒙特卡洛法
    s=0
    n=input('n=')
    for i=1:n
        x=rand(1)*2-1;
        y=rand(1)*2-1;
        if  x^2+y^2<=1
            s=s+1;
        end
    end
    pai=s/n*4
    

    3.2 while语句实现循环结构

    • 循环次数不确定
      格式
    while 条件
          循环语句体
    end
    

    例:
    从键盘输入任何数,输入0时输入结束,求这些数的平均值和它们之和。

    s=0;
    n=0;
    x=input('x=');
    while x~=0
        s=s+x;
        n=n+1;
        x=input('x=');
    end
    if n>0
        mean=s/n;
    end
    s
    mean
    

    bread语句和continue语句

    • break语句用来跳出循环体,结束整个循环。
    • continue语句用来结束本次循环,接着进行下一次是否执行循环的判断。

    例:
    求[100, 200]之间第一个能被21整除的整数

    for n=100:999
        if rem(n,21)~=0;
            continue;
        end
        disp(n)
        break     %跳出循环  
    end
    

    3.3 循环的嵌套

    • 如果一个循环结构的循环体又包含一个循环结构,就称为循环的嵌套,或称为多重循环结构。

    例:筛选法求出某自然数范围内的全部素数

    %寻找m以内的素数
    m=input('m=');
    p=1:m;
    p(1)=0;
    for i=2:sqrt(m)
        for j=2*i:i:m
            p(j)=0;
        end
    end
    n=find(p~=0);
    p(n)
    

    4函数文件的定义与调用

    4.1函数文件的定义

    格式
    function 输出形参表=函数名(输入形参表)
    注释说明部分
    函数体语句
    • 当有多个形参时,形参之间用逗号分隔,组成形参表。

    • 当输出形参多于一个时,用方括号括起来,构成一个输出矩阵。

    • 函数文件名通常由函数名再加上扩展名.m组成,函数文件名与函数名也可以不相同。当函数文件名与函数名不相同时,MATLAB将忽略函数名,调用该函数时使用函数文件名。建议函数文件名与函数名一致。

    • return语句表示结束函数的执行。通常也可以不使用return语句。

    例:
    编写函数文件,求半径为r的圆的面积和周长

    function [ s,p ] = fcircle( r ) %fcircle为函数名
    %fcircle 此处显示有关此函数的摘要
    %   此处显示详细说明
    s=pi*r*r;
    p=2*pi*r;
    end
    

    4.2函数文件的调用

    格式
    [输出实参表] = 函数名(输入实参表)
    • 在函数调用时,函数输入输出参数称为实际参数,简称实参
    • 输入输出的实参应当与函数定义时的形参个数、顺序一致。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。
    [s,p]=fcircle(1)
    
    s =
        3.1416
        
    p =
        6.2832
    

    4.3匿名函数

    格式
    函数句柄变量 = @(匿名函数输入参数)匿名函数表达式

    函数句柄变量相当于这个匿名函数的别名。
    利用函数句柄可以间接地调用这个函数,@是创建函数句柄的运算符

    例:
    创建一个函数,该函数的表达式为x²+y²,并求x=3, y=4时的函数值。

    f=@(x,y)x^2+y^2
    f(3,4)
    
    ans =
    
        25
    

    除了可以给自定义的函数表达式创建函数句柄以外,还可以给已存在的函数创建函数句柄(包括内部函数和自定义函数)。

    格式
    函数句柄变量 = @函数名
    h=@fcircle
    h(1)
    ans =
    
        3.1416
    

    5函数的递归调用

    函数的嵌套调用
    在一个函数的定义中,调用了其他函数,这就是函数的嵌套调用。
    函数的递归调用
    一个函数调用它自身称为函数的递归调用。

    • 递归是把一个大型复杂的问题层层转化为一个与原问题相似的、规模较小的问题来求解

    1.直接递归调用:在定义函数时直接调用这个函数本身
    2.间接递归调用:通过嵌套调用其他函数,在其他函数中又调用这个函数本身来实现

    例:利用函数的递归调用求n!

    n=input('n='); 
    s=fcircle(n);
    disp(s)
    
    function f=fcircle(n)
    if n<=1
        f=1;
    else
        f=fcircle(n-1)*n;
    end
    end
    

    6函数参数与变量的作用域

    6.1函数参数的可调性

    1.MATLAB在函数调用上有一个特点,就是函数所传递的参数数目是可调的,由于这个特点,同一个函数就可以完成多种功能。
    2.在调用函数时,MATLAB有两个预定义变量,nargin和nargout。

    • nargin记录调用这个函数时输入实参的个数
    • nargout记录调用这个函数时输出实参的个数
    clear; clc; 
    f1 = fout(10);
    disp(f1);
    f2 = fout(10, 10);
    disp(f2);
    f3 = fout(10, 10, 10);
    disp(f3);
     
    %%
    function f = fout(a,b,c)
    if nargin == 1
        f = a;
    else if nargin == 2
            f = a + b;
        else if nargin == 3
                f = (a * b * c) / 3;
            end
        end
    end
    end
    

    6.2全局变量和局部变量

    • 局部变量是指程序中只在特定过程或函数中可以访问的变量。
    • 变量的作用域是整个MATLAB工作空间,也就是全程有效,所有的函数都可以对它进行存取或修改。
    定义格式
    global 变量名

    在这里插入图片描述

    展开全文
  • 采用Matlab计算整数n的阶乘。子函数形式,直接调用。 采用if-else语句实现,非常方便。文档里面也有注释,方便学习。结果输出到命令窗口。
  • 经典运筹学问题,采用MATLAB编程,可以解决0-1整数规划问题
  • iminterpn 使用 Image Processing Toolbox 函数来实现多维插值。 与 MATLAB 函数 interpn 不同,iminterpn 可以对整数数组(如 uint8、uint16 等)进行插值,而无需将其转换为 double。
  • MATLAB 整数拆分程序 转载 转载本文请联系原作者获取授权,同时请注明本文来自黄川科学网博客。 链接地址:http://blog.sciencenet.cn/blog-567861-586909.html “整数拆分MATLAB代码”中给出了一种列出所有拆分数组...

    MATLAB 整数拆分程序 转载


    转载本文请联系原作者获取授权,同时请注明本文来自黄川科学网博客。
    链接地址:http://blog.sciencenet.cn/blog-567861-586909.html

    “整数拆分MATLAB代码”中给出了一种列出所有拆分数组的算法。后来在解决一个统计问题时编写了些接口程序,例如:对数字45拆分,而数组中元素为整数,取值 4到13之间等。下面的这几个就是关于类似问题的接口程序。

    1. 已知数字A,求其由xi∈[a,b],i=1…dim的拆分组合。

    function H=p_l(dim_m,sum_m,Max,Min) %Max=b;Min=a;sum_m=A;dim_m=dim

    if Mindim_m>sum_m||Maxdim_m<sum_m

    H=[];
    

    else

    p=Max-Min;

    n=sum_m-dim_m*Min;

    s={[0,1]};

    for i=2:n %when n>1

    k=size(s,2);
    
    w={};
    
    for j=1:k
    
        if (s{j}(end)<s{j}(end-1))&&(s{j}(end)<p)
    
            w{end+1}=s{j};
    
            w{end}(end)=w{end}(end)+1;
    
        end
    
        if size(s{j},2)<dim_m+1
    
            w{end+1}=s{j};
    
            w{end}(end+1)=1;
    
        end
    
    end
    
    if(i<=p)
    
    w{end+1}=[0,i];
    
    end
    
    s=w;
    

    end

    if dim_m*Min==sum_m %(1)

    s={[0]};
    

    end

    H=ones(size(s,2),dim_m)*Min;

    for i=1:size(s,2)

    H(i,1:size(s{i},2)-1)=s{i}(2:end)+Min;
    

    end

    end

    end

    (1)唯一的种情况,当Min*dim_m=sum_m时,程序执行后s原本应为空,但由于初始定义了s={[0,1]},将出现BUG,然而初始定义s={[0,1]}可使程序简便得多,所以在这种情况下必须强制置0来避免这种错误。

    s={[0,1]}与w{end+1}=[0,i],可以取消掉主循环中j<k的判断,size(s{j},2)<dim_m+1与(s{j}(end)<p)用来实现拆分数组元素个数和大小的限定。

    例如:5个数,最大为7,最小为3,其和为18的组合:

    H=p_l(5,18,7,3)

    H =

     4     4     4     3     3
    
     5     4     3     3     3
    
     6     3     3     3     3
    

    p_l函数是“整数拆分MATLAB代码”中的psn函数扩展改写。

    function s=psn(n)

    s={1};

    w=s;

    for i=2:n %when n>1

    k=size(s,2);
    
    for j=1:k
    
        w{j}(end+1)=1;
    
        if (j<k)&&(s{j}(end)<s{j}(end-1))
    
            w{end+1}=s{j};
    
            w{end}(end)=w{end}(end)+1;
    
        end
    
    end
    
    w{end+1}=i;
    
    s=w;
    

    end

    end

    1. 拆分数的递归形式。

    设f(A,b)为A的所有以xi∈[1,b],i=1、2、3…为元素的拆分数,则f(A,b)=f(A,b-1)+f(A-b,b),也就是欧拉分割函数(证明很直观,这儿就忽略了)。若是只须求拆分数,使用分割函数会比psn函数快很多,但分割函数不能列出拆分数组。

    function s=di_Euler(n,k) %n=A; k=b;

    if (n0)||(k0) %(2)

    s=(n==0);    
    

    elseif(n<k)

    s=di_Euler(n,n);
    

    else

    s=di_Euler(n,k-1)+di_Euler(n-k,k);
    

    end

    end

    re= di_Euler(18,18)

    re=

    385

    re=size(psn(18),2)

    re =

    385

    re=size(p_l(18,18,18,0),1)

    re =

    385

    (2)f(0,0)=1,由0组合成0,有一种方式。f(0,3)由小于3的数组合成0有一种方式。f(x,0)=0,当x≠0时,不存在组合。

    1. 已知数字A,求其由xi∈[a,b],i=1、2、3…的拆分组合。

    function L=psnab(sum_m,Max,Min)

    %Max=b;Min=a;sum_m=A;

    dim_min=ceil(sum_m/Max);

    dim_max=floor(sum_m/Min);

    P={};

    for i=dim_min:dim_max

    tmp=p_l(i,sum_m,Max,Min);
    
    if size(tmp,2)>0
    
        P{end+1}=tmp;
    
    end
    

    end

    L=[];

    for i=1:size(P,2)

    L=[L;[P{i},zeros(size(P{i},1),size(P{end},2)-size(P{i},2))]];

    end

    end

    例:

    L=psnab(13,13,5)

    L =

    13     0
    
     7     6
    
     8     5  
    

    暂时就这几个接口函数,以后遇到应用再补充。虽然应用中没发现其他的问题,但程序也许还存在BUG,而且效率也不算多好。谁有更好的方法,或者程序编写的建议,不吝赐教啊。

    转载本文请联系原作者获取授权,同时请注明本文来自黄川科学网博客。
    链接地址:http://blog.sciencenet.cn/blog-567861-586909.html

    展开全文
  • MATLAB 输入起始日期和天数,输出天数对应日期
  • 电场线和电势_装了Matlab_输入整数.exe
  • matlab实现整数规划/01规划

    千次阅读 2021-01-25 17:40:47
    UB指变量范围最大值 %没有明确规定的范围(输入参数不存在),使用[]表示 %intcon指约束变量的位置(从1开始计数) %EXITFLAG 为运行结束标志,当等于1时,表示程序收敛于解 X;当等于0时,表示程序运行次数到达最大...
  • 求解算法-->...结果分析MATLAB 功能 :数值计算,符号计算,图形绘制,程序流程绘制,工具箱数值计算方法:迭代法,二分法,割线法1.1 MATLAB系统环境1.窗口(1)主窗口(2)命令行窗口>>命令提示符…续...
  • MATLAB程序流程控制 二用if语句实现选择结构什么是选择结构单分支if语句双分支if语句多分支if语句 用if语句实现选择结构 什么是选择结构 选择结构又称为分支结构,是根据给定的条件是否成立来决定程序的执行流程。 ...
  • Ax = b x>=0 % 输入参数: c为目标函数系数, A为约束方程组系数矩阵, b为约束方程组常数项 % 输出参数: x_opt为最求解,fx_opt为最优函数值,iter为迭代次数 format rat %元素使用分数表示 [m,n] = size(A);...
  • 它接受两个整数输入,但不能处理更多。 所以我写了lcms。 lcms 使用质因数分解方法来确定一组数字的最小公倍数。 这很简单。 z = lcms(numberArray) 该函数接受任何自然数的 n 维数组作为输入(零不会改变程序的...
  • MATLAB知识点1

    2018-09-09 22:47:40
    数据的输入: input() 数据的输出: disp() 程序的暂停: pause(延迟的秒数) 案例: 有一线段AB,A的坐标为(1,1),B的坐标为(4.5,4.5),求AB的长度,以及黄金分割点C的坐标 当条件结果为标量时,非零表示...
  • MatlabMATLAB程序流程控制

    千次阅读 2018-06-26 19:39:08
    专题三 MATLAB程序流程控制 一 顺序结构程序 程序的三种基本结构:顺序结构、选择结构、循环结构。 程序文件分为脚本文件和函数文件。脚本文件是可以在命令行窗口直接执行的文件,也叫作命令文件;函数文件是定义...
  • 语句格式: if条件 语句组1 else 语句组2 end 多分支if语句 语句格式: if条件1 语句组1 elseif条件2 语句组2 elseif条件m 语句组m else 语句组n end 例1 输入一个整数,若为奇数则输出其平方根,否则输出其立方根。...
  • Matlab 输入输出命令

    千次阅读 2020-03-09 10:35:05
    a=input('输入一个1-100之间的整数:'); 输出命令fprintf a=10;%‘=’表示赋值,后面的给前面 fprintf('a=%g\n',a);%用\n换行 输出命令disp a=5; disp(a); disp(['a','b','c']);%输出为abc,无间隔 disp(['a ','b '...
  • Matlab小练习

    千次阅读 2020-03-18 10:41:54
    这些练习均来自中国大学MOOC 中南大学 《科学计算与MATLAB语言》 虽然这些练习都有现成的代码和结果,但我始终觉得光看虽然理解了但还是不如自己敲一遍理解的更加深刻! 一、分别求一个三位数的百位、十位、个位数 &...
  • 整数线性规划问题的基本内容 整数线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题。其中自变量只能取整数。特别地,当自变量只能取0或者1时,称之为 0-1 整数规划问题...
  • MATLAB教程(1) MATLAB 基础知识

    万次阅读 多人点赞 2017-10-26 20:57:32
    去年看过一点点MATLAB,很久不用,遗忘惊人。为了加深自己的印象,扎实基础,现将官网上的基础教程做简单的翻译。 首先,以下从九个部分简单介绍基础入门知识。第一部分:MATLAB显示桌面的基本布局...
  • MATLAB实现割平面法 运行效果 代码 A=[-1 3 1 0;7 1 0 1]; b=[6 35]'; c=[7 9 0 0]; [xstar,fxstar,iter] = Gomory(A,b,c) %xstar最优整数解,fxstar最优值,iter迭代次数 function [xstar,fxstar,iter] = Gomory(A...
  • 该程序通过二进制整数编程解决数独。此代码没有任何循环编写。输入必须为填充方块的行列格式。
  • 调试sslbp的代码时,SSLBP的代码如下:...bitshift 双精度输入必须包含 ASSUMEDTYPE 范围内的整数值。 解决方法:我原来改成了‘uint8’,后来改成‘uint32’就不报错了,看来是太小了。
  • 给定一个输入 n,该函数递归地创建一个 2^n × n 的矩阵,其中包括长度为 n 位数组的所有可能的位组合。 我寻找一个递归实现,但没有找到,所以我做了一个。 它通过复制基本单元 [1; [0],并且比它大的单位从n / 2个...
  • Matlab下的整数规划(CVX)

    千次阅读 2020-06-25 21:17:22
    好在CVX支持调用Gurobi,Mosek等工具,在matlab中,不改变原先的CVX算法,只需要改变优化工具就行,默认SDPT3 Toy Example 从data里面找出10个数字,使之求和最小 data = 1:1:n; cvx_begin variable pp(n) binary ...
  • 单个称为标量的数值实际上是一个 1×1 数组,也即它包含 1 行 1 列。 任务(1):创建一个名为x并且值...当您用空格(或逗号)分隔数值时(如前面的任务中所示),MATLAB 会将这些数值组合为一个行向量,行向量是一个包含...
  • Python中输入多个数字:a, b, c = map(int, input().split())1、输入一个数字直接 m = int(input())2、输入两个数字就是 m, n = map(int, input().split())3、三个及三个以上就和两个的类似:a, b, c = map(int, ...
  • matlab 图像输入/显示等

    千次阅读 2019-05-11 16:15:23
    切记,在输入语句后面加分号,否则matlab会将整个图像以矩阵的形式输出。 可以在工作区看到此图像是751*751*3的三维数组,即长宽均为751像素,其中3是R/G/B三个分量下的灰度值图像。 2 图像信息 使用imfinfo...
  • MATLAB GUI设计快速入门实例

    万次阅读 多人点赞 2019-11-27 10:47:15
    为了实现课题的一个功能,需要设计一个图形界面,因此使用matlab GUIDE进行设计,但前期没有接触过,因此通过实例练习,理解MATLAB gui设计相关知识。 一、几个GUI设计需要了解的知识 1、进入GUI 设计界面:在命令行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,682
精华内容 5,472
关键字:

matlab输入整数

matlab 订阅