精华内容
下载资源
问答
  • 让我们说,我在MATLAB中有以下函数:function [a,b,c,d] = func()a = 1;b = 2;c = 3;d = 4;现在假设,我只对第三个返回值感兴趣。这可以通过创建一个虚拟变量来实现:[dummy, dummy, variableThatIWillUse, dummy] =...

    是否可以从函数中获取“nth”个返回值,而不必在所有n-1个返回值之前创建虚拟变量?

    让我们说,我在MATLAB中有以下函数:

    function [a,b,c,d] = func()

    a = 1;

    b = 2;

    c = 3;

    d = 4;

    现在假设,我只对第三个返回值感兴趣。这可以通过创建一个虚拟变量来实现:

    [dummy, dummy, variableThatIWillUse, dummy] = func;

    clear dummy;

    但我认为这是一种丑陋。我认为你可以做一些类似下面的事情,但你不能:

    [_,_,variableThatIWillUse,_] = func;

    [,,variableThatIWillUse,] = func;

    variableThatIWillUse = func(3);

    variableThatIWillUse = func()(3);

    有没有任何优雅的方式来做这个工作?

    到目前为止,最好的解决方案是简单地使用variableThatIWillUse作为虚拟变量。这使我不必创建一个真正的虚拟变量污染工作空间(或我需要清除)。简而言之:解决方案是使用variableThatIWillUse为每个返回值直到有趣的。返回值之后可以简单忽略:

    [variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;

    我仍然认为这是非常丑的代码,但如果没有更好的方法,那么我想我会接受的答案。

    展开全文
  • 函数能运行,但没有返回值

    千次阅读 2021-04-22 07:42:52
    本帖最后由 VincentMeng 于 2014-10-13 12:43 编辑 function getresume... 函数能够运行不出错,但是工作空间没有变量,就是说等他运行完以后,在命令行输入函数内部的任何一个变量都显示未定义。这是怎么回事?

    本帖最后由 VincentMeng 于 2014-10-13 12:43 编辑

    function getresume(resumedate_start,resumedate_end)

    getdays1314;

    for i=1:size(BusinessDays,1)

    if datenum(resumedate_start,'yyyymmdd')==datenum(BusinessDays(i,:))

    resume_start_date=i;

    elseif datenum(resumedate_start,'yyyymmdd')>datenum(BusinessDays(i,:))&&datenum(resumedate_start,'yyyymmdd')

    resume_start_date=i+1;

    end

    end

    for i=1:size(BusinessDays,1)

    if datenum(resumedate_end,'yyyymmdd')==datenum(BusinessDays(i,:))

    resume_end_date=i;

    elseif datenum(resumedate_end,'yyyymmdd')>datenum(BusinessDays(i,:))&&datenum(resumedate_end,'yyyymmdd')

    resume_end_date=i+1;

    end

    end

    EarningDays=cell(resume_end_date-resume_start_date+1,1);

    Count_Days=0;

    for i=resume_start_date:resume_end_date

    Count_Days=Count_Days+1;

    EarningDays{Count_Days}=BusinessDays(i,:);

    end

    EarningDays(Count_Days+1:end,:)=[];

    for d=1:Count_Days

    count=0;

    codelist=cell(Count_Days*15,2);

    date=EarningDays{d};

    for i=1:2

    url=['**********************************************************************************'];

    [json, status] = urlread(url, 'get', '','charset','utf-8');

    warning off all;

    output = parse_json(json);

    for j=1:numel(output{1}.list)

    if strcmp(output{1}.list{j}.NTRAD7,date)

    count=count+1;

    codelist{count,1}=output{1}.list{j}.SYMBOL;

    codelist{count,2}=EarningDays{d};

    end

    end

    end

    end

    codelist(count+1:end,:)=[];

    end

    开始赋值参数resumedate_start=‘20141013’;resumedate_end='20141013'。

    函数能够运行不出错,但是工作空间没有变量,就是说等他运行完以后,在命令行输入函数内部的任何一个变量都显示未定义。这是怎么回事?

    展开全文
  • 一起来学matlab-matlab学习笔记13函数13_1 函数返回值觉得有用的话,欢迎一起讨论相互学习~Follow Me函数返回一个值返回值不必使用return语句,而是直接将需要返回的变量或矩阵写在function后面function 返回值/返回...

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

    13_1 函数返回值

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

    函数返回一个值

    返回值不必使用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

    展开全文
  • MATLAB中,函数在单独的文件中定义。文件的名称和函数的名称应该是一样的。函数在自己的工作空间内的变量上运行,这个变量也称为本地工作空间,与在MATLAB命令提示符下访问的工作区(称为基本工作区)不同。函数...

    一个函数是一组在一起执行任务的语句。 在MATLAB中,函数在单独的文件中定义。文件的名称和函数的名称应该是一样的。

    函数在自己的工作空间内的变量上运行,这个变量也称为本地工作空间,与在MATLAB命令提示符下访问的工作区(称为基本工作区)不同。

    函数可以接受多个输入参数,并可能返回多个输出参数。

    二、一元线性回归

    2.1.命令 polyfit最小二乘多项式拟合

    [p,S]=polyfit(x,y,m)

    多项式y=a1xm+a2xm-1+…+amx+am+1

    其中x=(x1,x2,…,xm)x1…xm为(n*1)的矩阵;

    y为(n*1)的矩阵;

    p=(a1,a2,…,am+1)是多项式y=a1xm+a2xm-1+…+amx+am+1的系数;

    S是一个矩阵,用来估计预测误差。

    2.2.命令 polyval多项式函数的预测值

    Y=polyval(p,x)求polyfit所得的回归多项式在x处的预测值Y;

    p是polyfit函数的返回值; x和polyfit函数的x值相同。

    2.3.命令 polyconf 残差个案次序图

    [Y,DELTA]=polyconf(p,x,S,alpha)求polyfit所得的回归多项式在x处的预测值Y及预测值的显著性为1-alpha的置信区间DELTA;alpha缺省时为0.05。

    p是polyfit函数的返回值;

    x和polyfit函数的x值相同;

    S和polyfit函数的S值相同。

    2.4 命令 polytool(x,y,m)一元多项式回归命令

    2.5.命令regress多元线性回归(可用于一元线性回归) b=regress( Y, X )

    [b, bint,r,rint,stats]=regress(Y,X,alpha)

    b 回归系数

    bint 回归系数的区间估计

    r 残差

    rint 残差置信区间

    stats 用于检验回归模型的统计量,有三个数值:相关系数R2、F值、与F对应的概率p,相关系数R2越接近1,说明回归方程越显著;F 》 F1-α(k,n-k-1)时拒绝H0,F越大,说明回归方程越显著;与F对应的概率p 时拒绝H0,回归模型成立。

    Y为n*1的矩阵;

    X为(ones(n,1),x1,…,xm)的矩阵;

    alpha显著性水平(缺省时为0.05)。

    三、多元线性回归

    3.1.命令 regress(见2。5)

    3.2.命令 rstool 多元二项式回归

    命令:rstool(x,y,’model’, alpha)

    x 为n*m矩阵

    y为 n维列向量

    model 由下列4个模型中选择1个(用字符串输入,缺省时为线性模型):

    linear(线性):

    purequadraTIc(纯二次):

    interacTIon(交叉):

    quadraTIc(完全二次):

    alpha 显著性水平(缺省时为0.05)

    返回值beta 系数

    返回值rmse剩余标准差

    返回值residuals残差

    四、非线性回归

    4.1.命令 nlinfit

    [beta,R,J]=nlinfit(X,Y,’’model’,beta0)

    X 为n*m矩阵

    Y为 n维列向量

    model为自定义函数

    beta0为估计的模型系数

    beta为回归系数 R为残差 J

    4.2.命令 nlintool

    nlintool(X,Y,’model’,beta0,alpha)

    X 为n*m矩阵

    Y为 n维列向量

    model为自定义函数

    beta0为估计的模型系数

    alpha显著性水平(缺省时为0.05)

    4.3.命令 nlparci

    betaci=nlparci(beta,R,J)

    beta为回归系数 R为残差 J

    返回值为回归系数beta的置信区间

    4.4.命令 nlpredci

    [Y,DELTA]=nlpredci(‘model’,X,beta,R,J)

    Y为预测值

    DELTA为预测值的显著性为1-alpha的置信区间;alpha缺省时为0.05。

    X 为n*m矩阵

    model为自定义函数

    beta为回归系数

    R为残差

    J

    五、其它

    命令 grid on

    命令 axis(坐标轴)([0 60 0 0.025])

    命令 figure 弹出新的画图窗口

    命令获取矩阵的某行某列

    x(n,:); 获取矩阵的第n行

    x(:,n); 获取矩阵的第n列

    命令 rcoplot

    画出残差及其置信区间:rcoplot(r,rint)

    glmfit 一般线性模型拟合

    regstats 回归统计量诊断

    regstats(responses,DATA,‘model’)‘

    stats = regstats(responses,DATA,’model‘,’whichstats‘)

    ’Q‘Q from the QR DecomposiTIon of X

    ’R‘R from the QR Decomposition of X

    ’beta‘Regression Coefficients ’covb‘Covariance of Regression Coefficients

    ’yhat‘Fitted Values of the Response Data

    ‘r’Residuals

    ‘mse’Mean Squared Error

    ‘leverage’Leverage ‘hatmat’Hat (Projection) Matrix ‘s2_i’Delete-1 Variance

    ‘beta_i’Delete-1 Coefficients ‘standres’Standardized Residuals ‘studres’Studentized

    Residuals ‘dfbetas’Scaled Change in Regression Coefficients ‘dffit’Change in Fitted

    Values ‘dffits’Scaled Change in Fitted Values‘covratio’Change in Covariance

    ‘cookd’Cook‘s Distance ’all‘Create all of the above statistics

    命令 bar(条图)

    命令 pie(饼图)

    命令 hist(直方图)

    命令 help

    命令 mean(平均值)

    命令 inv(逆概率分布)

    命令 pdf(密度)

    命令 cdf(分布函数)

    命令 stat(均差与方差)

    命令rnd(随机函数)

    命令 std(标准差)

    命令 var(方差)

    命令 median(中位数)

    命令 skewness(偏度)

    命令 kurtosis(峰度)

    命令 norm(正态分布)

    命令 t(t分布)

    命令 f(f分布)

    命令 chr2(x2分布)

    命令 poiis(泊松分布)

    展开全文
  • Matlab 函数返回一个值--样例

    万次阅读 2018-02-13 21:58:25
    目录 一、matlab函数文件返回一个值写法 二、简单的例子 ...1.第一行写 function 返回值/返回矩阵=该函数文件名(参数1,参数2,...,参数n) 2.第二行开始写你的函数代码: 例如: functio...
  • Object[]result=null;/*Storestheresult*/inta=10,b=2;result=abc.operation(4,a,b);System.out.println(result[0].toString());System.out.println(result[1].toString());System.out.println(result[...
  • 是否可以从函数中获取“ nth”个返回值,而不必n-1在此之前为所有返回值创建伪变量?假设我在MATLAB中具有以下功能:function [a,b,c,d] = func()a = 1;b = 2;c = 3;d = 4;现在假设,我只对第三个返回值感兴趣。这...
  • 主要为大家详细介绍了C++调用Matlab函数求特征值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Matlab 函数返回多个值--样例

    万次阅读 多人点赞 2018-02-14 19:52:36
    1.第一行写 function [返回值1/返回矩阵1,返回值2/返回矩阵2,...,返回值n/返回矩阵n]=该函数文件名(参数1,参数2,...,参数n) 2.第二行开始写你的函数代码 二、下面是一个简单的例子 现在需要将xx矩阵和yy...
  • function [] = funcname() ... ... end (1)一般用作 demo 程序用; (2)比较美妙的一点是,函数执行完毕,会清空工作区;
  • 1 致谢 感谢网友honglei.chen的回答, ...今天在用MATLAB完成 Machine Learning中的作业,遇到一个小问题,就是在使用max()函数时,我只需要获得当前矩阵所有行向量的最大值的索引,而不需要获...
  • Matlab中自定义函数(一)

    万次阅读 多人点赞 2018-03-13 11:23:11
    作为一个程序员出生的Matlab学习者,不能定义函数那简直是受不了!! 最重要的一点! 定义函数的时候,很多时候都会很迷的一般,使用不了自己的定义的函数。...Y在我的理解就是,函数返回值 ...
  • 如果没有图形,可以将contour3试试看。 另外,若想 获得某一等高线处的具体数据 ,则用[c,h]=contour(X,Y,Z,[i,i]).其中 c中即包含等高线的信息 ,即对应Z=i处的xdata向量和ydata向量。 直接调用c就可以了...
  • Matlab函数imread的返回值

    千次阅读 2016-03-18 19:35:00
    Matlab函数imread的返回值 matlab图像的读入后的原点在左上角,从1开始,不是0; imread读取图像返回的是三维数组 I= imread('abc.jpg') 返回值是3个数组:I( : , : ,1) I( : , : ,2) I( : , : ,3) 这3个...
  • python在回调函数中获取返回值的方法python中有用到回调函数的时候,而回调函数又需要返回数值的时候,就需要先将所被传为回调函数函数先赋值给一个变量,然后等回调结束之后,将这个变量取值回来就可以了。...
  • MATLAB中的size返回值

    2021-06-15 20:11:31
    [X,Y]=size(A) 返回值的含义是X行,Y列
  • matlab 函数返回多个值--样例

    千次阅读 2021-04-18 03:25:33
    matlab 函数返回多个值--样例发布时间:2018-02-14 19:52,浏览次数:2062, 标签:matlab目录一、matlab函数文件返回多个值写法二、简单的例子三、 结果截图一、matlab函数文件--返回多个值--写法为:1....
  • Matlab中function函数使用操作方法

    千次阅读 2021-04-18 04:11:40
    亲们或许不知道Matlab中function函数如何使用,那么今天绿软吧就讲解Matlab中function函数使用操作方法哦,希望能够帮助到大家呢。Matlab中function函数使用操作方法打开Matlab,点击新建->函数,默认创建一个名...
  • 本文实例讲述了Python的函数返回值用法。分享给大家供大家参考。具体分析如下: 最近学一些Python的基本用法,看到定义函数,发现似乎只能返回一个返回值,想想matlab里返回多个返回值多方便啊,网上查了查,看到有...
  • 你说的方法貌似不行的,你把你的M文件 clear all;clc;radius=2.5;area=pi*2.5^2;...保存为:calc_area.m 在命令窗内输入: calc...1、双击打开matlab程序,切换工作目录到picturefans,如下图。...3、在新...
  • 需要注意的是,针对不同的文件内容,importdata函数返回值类型也有所不同。 MATLAB帮助文档中的详细说明如下: Based on the file format, importdata selects and calls a helper function to read the data. ...
  • matlab有多个返回值时C#如何接收

    千次阅读 2016-04-21 10:43:51
    Matlab函数: function[dstmat,answ]=MatrixMultiply(scamat1,srcmat2) dstmat=scamat1*srcmat2; dstmat=double(SubFun(dstmat)); answ=[1,2;3,4]; end   function dstmat=SubFun(srcmat) dstmat=srcmat*1;...
  • sprintf函数返回值

    千次阅读 2020-07-16 16:15:36
    sprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,…]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化数据输出到 string 所指向的字符串。 返回值: ...
  • matlab神经网络函数

    2018-02-23 15:30:32
    matlab神经网络函数讲义,帮助从事matlab的人们快速查找自己所需要的函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,313
精华内容 4,125
关键字:

matlab函数没有返回值

matlab 订阅