Matlab类,具有构造函数中实例名称的知识

时间:2016-09-30 14:19:15

标签: matlab constructor instance uniqueidentifier

我想有一个类,在其构造函数中,它可以具有知识(提取为字符串)其实例名称。

目前我的名字提取工作如下:

classdef mysession

methods (Access = public)

  function this=mysession (varargin)
    this.cargs=varargin;
    this.built=false;
  end

  function id=build(this)
    id=this.mynameis;
    this.id = id;
    %% instructions needing id 
    built=true;
  end

  function name = mynameis (this)
    name=evalin ('caller', 'inputname');
  end
end

properties  (Access=private)
    id
    built
    cargs
end
end

需要丑陋的

A = mysession;  A.build

语法以便...

1 个答案:

答案 0 :(得分:1)

无法获取用于分配函数或类构造函数输出的变量名称。正如您所发现的,在调用工作空间中获取对象变量名称的唯一方法是调用该类的另一个方法,此时您可以使用library(purrr) lll%>% transpose %>% map(lift(c)) %>% setNames(., paste0("X", seq_along(.))) %>% data.frame() %>% arrange(X1) 进行查询。

除此之外,我们不清楚为什么你需要这样做,但我强烈反对它。特别是对于inputname类,您可以将多个变量指向相同的对象,因此该对象在技术上具有多个名称。