精华内容
下载资源
问答
  • matlab persistent
    千次阅读
    2017-10-20 21:38:06

    persistent关键字说明;

    matlab中persistent定义为一个静态变量,程序结束静态变量内存不释放,只有在matlab程序关闭时,静态变量的内存才被清除。当程序结束时,不希望变量的值被清空,这时可以用persistent关键字。
    定义一个名为a的静态变量 ,代码:persistent a;
    Matlab定义静态变量时,不能直接赋值,需用isempty()判断

    代码如下:

    persistent a;
    if isempty(a)
        number_add=0;
    end

    a=a+1

    更多相关内容
  • %日期 负责人 版本描述% ==== ========== ===================== % 2015-10-9 17:43:33王茂春 源代码% 持久变量声明(重要) persistent n % 输入数的个数 persistent sum_x % 输入数的和 persistent sum_x2 % 输入...

    数学知识:

    标准差体现随机变量取值与其期望值的偏差。标准差的值较大,则表明该随机变量的取值与其期望值的偏差较大

    反之,则表明此偏差较小。

    函数功能:

    函数必须能够接受一次输入值并记录对应的已输入数N、sum(xi)、sum(xi^2),用于计算当前的平均值和标准差。

    已输入数N、sum(xi)、sum(xi^2)必须存储在持久内存中,这样在每一次调用后,不会消失,最后函数须具备需要时把这些值清零的功能。

    1. State the problem

    编写一个程序,计算当前输入数据的平均数和标准差。函数必须具备需要时计算功能和清零功能

    2. Define the inputs and outputs

    输入变量:当输入字符型“reset”用于已输入数N、sum(xi)、sum(xi^2)的清零

    3.Design the algorithm(伪代码)

    这个函数分为4步:

    1)check for a legal number of arguments

    2)check for a ‘reset‘,and resets sums if preset,otherwise,add current value to running sums

    3)calculate and return runing average and std dev if enough data is available

    return zeros if not enough data

    4)这些步骤的伪代码:

    检查输入的每个数的合法性

    if x == ‘reset‘

    n

    sum_x

    sum_x2

    else

    n

    sum_x

    sum_x2

    %计算平均值ave和方差std

    if n == 0

    ave

    std

    else if n==1

    ave

    std

    else

    ave

    std

    end

    4.Turn the algorithm into MATLAB statements

    自定义函数:runstats.m

    function [ave, std] =runstats(x)%RUNSTATS 随时计算一组数的平均值和方差% 输入数x必须一次一个,当输入字符串‘reset‘时,持久变量清零%定义输入输出变量% ave --平均值% msg --错误信息% n --一组数的个数% std --方差% sum_x --一组数的的和% sum_x2 --一组数的平方和% x --输入值%版本记录:%日期 负责人 版本描述% ==== ========== =====================

    % 2015-10-9 17:43:33王茂春 源代码% 持久变量声明(重要)

    persistent n % 输入数的个数

    persistent sum_x % 输入数的和

    persistent sum_x2 % 输入数的平方和% 检查输入数的合法性

    msg = nargchk(1,1,nargin); %最少1个参数,最多一个参数,检查输入变量

    error(msg);% 如果输入时‘reset‘,重置if x == ‘reset‘n= 0;

    sum_x= 0;

    sum_x2= 0;elsen= n + 1;

    sum_x= sum_x +x;

    sum_x2= sum_x2 + x^2;

    end%计算平均值和方差if n == 0 %0输入

    ave= 0;

    std= 0;

    elseif n== 1 %1输入

    ave=sum_x;

    std= 0;elseave= sum_x /n;

    std= sqrt((n*sum_x2 - sum_x^2) / (n*(n - 1)));

    end

    调用函数test_runstats.m:

    %脚本文件: test_runstats.m%

    %程序目的:%计算输入一系列数的平均值和方差,(是随时保存值的)%

    %版本记录:%日期 负责人 版本描述% ==== ========== =====================

    % 2015-10-9 17:43:33王茂春 源代码%

    %定义变量:% array --输入数组% ave --平均值% ii --循环索引% nvals --输入数的数量% std --方差%首先清零初始化

    [ave std]= runstats(‘reset‘);%确定输入数的数量

    nvals= input(‘输入这一组总数:‘);%获取输入值for ii = 1:nvals% 提示输入(这种方法:分成两个语句的学习下。。。)

    string = [‘输入数值 ‘ int2str(ii) ‘: ‘];

    x= input(string);%调用函数求解(输出变量是多个)

    [ave std]=runstats(x);%显示运算结果

    fprintf(‘平均值 = %8.4f; 标准差 = %8.4f\n‘,ave, std);

    end

    原文:http://www.cnblogs.com/shuqingstudy/p/4864610.html

    展开全文
  • MATLAB 首次遇到特定 persistent 语句时,它将持久变量初始化为空矩阵 ([])。在您清除或修改内存中的函数时,MATLAB 会清除持久变量。 示例 函数调用计数 在当前工作文件夹中创建函数 myFun。每次调

    语法

    persistent var1 ... varN

    说明

    persistent 将变量var1.....varN 声明为持久变量。持久变量是声明它们的函数的局部变量;但其值保留在对该函数的各次调用所使用的内存中,Matlab命令行和其它函数中的代码不能更改持久变量。当 MATLAB 首次遇到特定 persistent 语句时,它将持久变量初始化为空矩阵 ([])。在您清除或修改内存中的函数时,MATLAB 会清除持久变量。

    示例

    函数调用计数

    在当前工作文件夹中创建函数 myFun。每次调用函数时,n 的值都会增加。

    function myFun()
        persistent n
        if isempty(n)
            n = 0;
        end
        n = n+1
    end
    
    在命令提示符下,调用 myFun 三次。
    
    myFun
    myFun
    myFun
    
    
    输出
    
    n =
    
         1
    
    
    n =
    
         2
    
    
    n =
    
         3

    清除 myFun 并再调用它两次。清除该函数会同时清除持久变量。

    clear myFun
    myFun
    myFun
    
    
    
    输出
    
    n =
    
         1
    
    
    n =
    
         2
    • 持久变量与全局变量类似,因为 MATLAB 为二者都建立持久存储。二者的区别在于持久变量仅为声明它们的函数所知晓。因此,MATLAB 命令行或其他函数中的代码不能更改持久变量。

    • 由于 MATLAB 将持久变量初始化为一个空矩阵 ([]),通常函数会检查持久变量是否为空,如果是,则初始化该持久变量。

    global和persistent

    1.persistent :相当于c++中的Static,定义静态变量。而static是关键字,就是静态局部变量,即使在声明时未付初值,编译器也会把它初始化为0,且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。静态局部变量的效果跟全局变量有一拼,但是位于函数体内部,就极有利于程序的模块化了。

    2.把在函数中声明的局部变量保存到内存中,供以后调用该函数使用。定义的变量类似全局变量会一直存在内存中,但不同的是persistent变量只能被所被定义的函数使用,这样能够防止被其他函数或其他命令所改变。

    persistent变量只有在m文件被改变或被从内存中清除,该变量才会被清除。

    persistent变量初始化为一个空矩阵

    python中变量持久化

    import pickle
    a = [[1,2],[2,3,4,5]]                   #单变量的储存
    
    f = open('store.pkl', 'wb')
    pickle.dump(a, f)
    f.close()
    #多变量保存
    
    
    a = [[5,6,7],[7,8]]
    b = ['a','b',"c"]
    c = "哈萨克斯"
    d = "shsjka"                               #多变量的储存
    
    f = open('store.pkl', 'wb')
    pickle.dump([a,b,c,d], f)    #把a,b,c,d存储到文件中,wb表示写入
    f.close()
    
    #加载
    import pickle
    f = open('store.pkl', 'rb')
    storedata= pickle.load(f)
    print(storedata)
    f.close()  #关闭文件
    
    '''输出
    [[[5, 6, 7], [7, 8]], ['a', 'b', 'c'], '哈萨克斯', 'shsjka']
    '''

    Python的局部静态变量

    哈哈,看了这么久的博客,python居然没有局部静态变量,这就很难受了。找到几种方式看是否可行。

    定义函数属性

    def func():
        func.m+=1
        print(func.m)
    func.m=0
    func()
    func()
    1
    2

    默认参数

    
    def func(x=[0]):
        x[0]+=1
        print(x[0])
    func()
    func()
    1
    2

    Python解释器在执行def语句时,会给函数的默认参数创建一个对象实例,当该参数是一个可变对象时,可以用于记录函数的状态,类似于局部静态变量的功能。

    静态方法

    首先了解几个概念:

    全局变量:在模块内,在所有函数外面,在class外面。

    局部变量:在函数内,在class的方法内。

    静态变量:在class内的,但不在class的方法内

    a = 1
    b = [2, 3]
    
    def func():
        a = 2
        print ("in func a:", a) 
        b[0] = 1
        b.append(6)                    #b的第一个元素改为1,在最后一列增加6
        print ("in func b:", b)
    
    if __name__ == '__main__':
        print( "before func a:", a)
        print ("before func b:", b)
        func()
        print ("after func a:", a)
        print ("after func b:", b)
    
    
    before func a: 1
    before func b: [2, 3]
    in func a: 2
    in func b: [1, 3, 6]
    after func a: 1
    after func b: [1, 3, 6]

    全局变量的修改,加入global声明:

    
    a = 1
    b = [2, 3]
    
    def func():
        global a
        a = 2         #声明全局变量
        print ("in func a:", a)
        b[0] = 1
        print ("in func b:", b)
    
    if __name__ == '__main__':
        print ("before func a:", a)
        print ("before func b:", b)
        func()
        print ("after func a:", a)
        print ("after func b:", b)
    
    
    
    before func a: 1
    before func b: [2, 3]
    in func a: 2
    in func b: [1, 3]
    after func a: 2
    after func b: [1, 3]

    展开全文
  • Matlab中的persistent变量

    千次阅读 2020-11-10 09:26:40
    Matlab中的persistent变量 persistent, 用于定义persistent变量。persistent变量对于声明它的函数来说是局部的,但是当退出该函数时,该变量仍然保存在内存中,数值并不变。persistent变量与全局变量有相似之处,...

    Matlab中的persistent变量

    persistent, 用于定义persistent变量。persistent变量对于声明它的函数来说是局部的,但是当退出该函数时,该变量仍然保存在内存中,数值并不变。persistent变量与全局变量有相似之处,它们都创建永久的存储空间,不同在于persistent只对定义它的函数可见。这样可以防止persistent变量被其它函数或在命令行中被改变。

    当我们改变或着清空在内存中的一个函数时,在它内部定义的presistent变量也会被清空。

    当我们定义persistent变量的时候,如果不定义它的值,则默认为空矩阵。

    如果我们定义的在persistent变量在工作空间中已经存在的话,则会产生错误。如果把任何函数的输入或输出参数定义为presistent,同样也会产生错误。

    其实,我认为它和C语言中的静态变量差不多,是一样的道理。有一点不同,那就是当我们把定义persistent变量的函数清除掉的时候,persistent变量也随之被清除。
    在这里插入图片描述
    https://www.cnblogs.com/yinheyi/p/5568325.html

    展开全文
  • 请问怎么对persistent这种变量设置容量?我想设置一个变量的容量为25,也就是说只容纳下25个数,后面再有数就把前面的数挤出去了。
  • Matlab中如何清除persistent 变量

    千次阅读 2018-04-12 13:46:33
    MATLABpersistent变量相当于C中局部静态变量,只能在所定义的函数内部访问到,并且一旦定义一直存在。这样会有一个问题,就是下次继续访问这个函数的时候,里面的变量是被初始化了的,而且保留的是上一次写入的...
  • matlab写代码代码用于计算实验的函数出现在论文“持久熵:用于分析细胞排列的尺度不变拓扑统计”和“使用持久熵表征上皮组织”中。 函数如下: - reduce_cells.m:包含用于归一化图像中单元数量的螺旋算法。 (matlab...
  • 查看matlab函数或变量类型的方法: 在matlab的command命令行中输入 open global.m 下面是open persistent.m 原定义 %PERSISTENT Define persistent variable. % PERSISTENT X Y Z defines X, Y, and Z as ...
  • Define persistent variable/定义局部静态变量(看意思翻译的,原意应该是持续的、不断的)Syntax 语法persistent X Y ZDescription描述definesX,Y, andZas variables that arelocal to the function in which they ...
  • 翻译一遍吧,顺便练练英语persistentDefine persistentvariable/定义局部静态变量(看意思翻译的,原意应该是持续的、不断的)Syntax 语法persistent X Y ZDescription描述persistent XY Z defines X, Y, and Z ...
  • Matlab中的保留字:global和persistent

    千次阅读 2018-10-11 20:27:03
    原文 persistent: 相当于C++中的Static,定义静态变量; 和global变量很像,和global不同的是,persistent只被定义...如果要让m文件在matlab退出前一直在内存中保留,则使用mlock。如果persistent变量中...
  • matlab中的persistent变量

    千次阅读 2017-06-28 16:45:46
    函数里面普通的变量都是局部变量,一旦函数退出,变量也就不复存在,而定义成persistent变量,可以在多次调用同一函数时保留变量的值。这种变量有点类似于全局变量,但和全局变量不同的是,它仅在定义该变量函数中...
  • matlab局部变量定义 persistent

    千次阅读 2021-04-20 01:11:13
    persistent (表面意思是 持续的,连续的)Define persistent variable %%声明静态变量Syntax%% 语法persistent X Y Z %%定义局部变量 X Y ZDescription 描述其实就是定义局部静态变量的语法,变量生命期为全局,但是...
  • 1.persistent 作用:定义persistent变量; 用法:persistent X Y Z 注: (a) 将在函数中声明的局部变量保存到内存中,供以后调用该函数使用。定义的变量类似全局变量会一直存在内存中,但不同的是persistent...
  • Matlab】彻底清除persistent变量

    千次阅读 2019-03-01 16:10:37
    MATLABpersistent变量相当于C中局部静态变量,只能在所定义的函数内部访问到,并且一旦定义一直存在。 一般的解决方案 clear var 变量名 新的问题 如下图所示,本来想着将算法每次迭代的结果先暂时存放在一个...
  • matlab学习之persistent变量的使用

    万次阅读 2014-11-06 21:56:12
    今天看到一个MATLAB程序,看到一个persistent
  • persistent类似global,不过仅对当前函数有作用,这样避免了外面的影响。当这个函数被clear出内存时,persistent变量也被clear。为了防止这个现象,需要使用mlock把函数或mex文件保存不被clear清除。 转载于:...
  • 一、global 官方解释: help global global Define global variable. ... Ordinarily, each MATLAB function has its own local variables, which are separate from those of other functions, and from t
  • 1 建立模型 2 参数设置 在MATLAB function参数中填入.m文件:Interpreted_MATLAB_FC.m ...persistent errori error_1 %定义持久性变量 t=u(1);%clock输入 if t==0%初始化 errori=0; error_1=0; end kp=20; ki=
  • Persistent VI 的实现,这是一种学习离散 UGM 后验的变分近似的算法。 它还实现了稀疏诱导尺度混合先验的非中心重新参数化,例如 ,以在交互之间进行软变量选择(论文中的“Fadeout”)。 伊辛模型 ising子目录包含...
  • function out1 = rands(in1,in2,in3,in4,in5,in6) % BOILERPLATE_START % This code is the same for all Weight/Bias Initialization Functions. persistent INFO; if isempty(INFO) if nnet.test.flags('initW...
  • 永久性景观包装由Pawel Dlotko开发的[持久性景观工具包]( )(的一部分)的Matlab包装器。 有关该技术的详细信息,请参见论文信息。安装克隆或下载此存储库中的代码。 下载[永久性景观工具包]的源代码( )并将其...
  • 通信系统仿真熟悉CSMA、ALOHA或者CSMA/CA协议,采用Matlab 或者C 语言编写程序,对其中一种自由竞争接入协议在随机布点、不同节点数、不同覆盖范围和不同退避机制等条件下进行网络性能分析.
  • matlab中代码返回到某些行持久同源性定位算法 版权所有2017罗格斯大学和纽约市立大学皇后学院 描述: 此页面包含[1]中提出的持久同源性定位算法的代码。 对于特定复合物中的给定同源性类,此代码计算最佳(最短)...
  • matlab写代码代码用于计算实验的函数出现在论文“持久熵:用于分析细胞排列的尺度不变拓扑统计”和“使用持久熵表征上皮组织”中。 函数如下: - reduce_cells.m:包含用于归一化图像中单元数量的螺旋算法。 (matlab...
  • Persistent-Homology-All-Leaf

    2021-05-14 21:51:35
    该软件包包含计算持久同源性输出所需的所有Matlab函数,这些持久性输出用于分析> 180,000种叶片形状,这些描述如下:Li M,An H,Angelovici R,Bagaza C,Batushansky A,Clark L,Coneva V,Donoghue MJ,Edwards...
  • Matlab编写函数,以及Simulink创建function函数块时遇到一个问题, Variable 'a' is undefined on some execution paths. 此问题的原因在于matlab的语法编译与c语言有些区别,而造成的参数没有完整定义的报错。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,071
精华内容 428
关键字:

matlab persistent

matlab 订阅
友情链接: LED.rar