zoukankan      html  css  js  c++  java
  • matlab学习笔记13_1 函数返回值

    一起来学matlab-matlab学习笔记13函数

    13_1 函数返回值

    觉得有用的话,欢迎一起讨论相互学习~Follow Me

    参考文献
    https://blog.csdn.net/qq_36556893/article/details/79323389#commentBox
    https://blog.csdn.net/qq_36556893/article/details/79326325

    函数返回一个值

    • 返回值不必使用return语句,而是直接将需要返回的变量或矩阵写在function后面
    • function 返回值/返回矩阵=该函数文件名(参数1,参数2,参数3...参数n)
    function x=init_x(x,m,n)
    
    for i=1:m
        for j=1:n
            x(i,j)=randsample(20,1);
        end
    end
    
    • 此示例表示通过参数传入x,m,n的值,然后返回改变之后的x

    示例

    • 现在需要将xx矩阵元素完全赋值给一个新矩阵yy,即复制,具体代码如下:

    主函数 execute_1.m

    clc
    clear
    %定义xx,yy矩阵大小
    m=3;
    n=1;
    xx=zeros(m,n);
    yy=zeros(m,n);
    %初始化xx
    xx=init_x(xx,m,n);
    %将xx矩阵赋值给yy
    yy=function_1(xx,yy,m,n
    

    初始化xx的函数 init_x.m

    function x=init_x(x,m,n)
    
    for i=1:m
        for j=1:n
            x(i,j)=randsample(20,1);
        end
    end
    

    赋值函数 function_1.m

    function y=function_1(x,y,m,n)
    
    for i=1:m
        for j=1:n
            y(i,j)=x(i,j);
        end
    end
    

    结果截图

    函数返回多个值

    • function [返回值1/返回矩阵1,返回值2/返回矩阵2,...,返回值n/返回矩阵n]=该函数文件名(参数1,参数2,...,参数n)

    示例

    • 将xx矩阵和yy矩阵的元素全部交换,并且二者相加后得到一个新矩阵zz

    主函数 execute_2.m

    clc
    clear
    %定义xx,yy,zz矩阵大小
    m=3;
    n=1;
    xx=zeros(m,n);
    yy=zeros(m,n);
    zz=zeros(m,n);
    %初始化xx,yy
    xx=init_x(xx,m,n)
    yy=init_y(yy,m,n)
    %交换xx矩阵和yy矩阵的元素,并求出xx和yy相加的新矩阵zz
    [xx,yy,zz]=function_2(xx,yy,zz,m,n)
    

    初始化xx和yy的函数 init_x.m,init_y.m

    function x=init_x(x,m,n)
    
    for i=1:m
        for j=1:n
            x(i,j)=randsample(20,1);
        end
    end
    
    function y=init_y(y,m,n)
    
    for i=1:m
        for j=1:n
            y(i,j)=randsample(20,1);
        end
    end
    

    交换矩阵元素以及相加函数 function_2.m

    function [x,y,z]=function_2(x,y,z,m,n)
    tempx=x;%中间变量
    %x和y交换
    for i=1:m
        for j=1:n
            x(i,j)=y(i,j);
            y(i,j)=tempx(i,j);
        end
    end
    
    %x加上y
    for i=1:m
        for j=1:n
            z(i,j)=x(i,j)+y(i,j);
        end
    end
    

    在这里插入图片描述

  • 相关阅读:
    670. Maximum Swap
    653. Two Sum IV
    639. Decode Ways II
    636. Exclusive Time of Functions
    621. Task Scheduler
    572. Subtree of Another Tree
    554. Brick Wall
    543. Diameter of Binary Tree
    535. Encode and Decode TinyURL
    博客园自定义背景图片
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/11786023.html
Copyright © 2011-2022 走看看