相关疑难解决方法(0)

MATLAB:重写table()方法

设置Win7 64b,R2015b,16 GB RAM,CPU i7-2700

table()是一个基本的Matlab类,它也是密封的,因此我不能将它子类化.

我想修复这个类的一些方法并添加新的方法.例如,table.disp()从根本上被打破,例如,尝试不disp(table(rand(1e7,1))),或忘记;在命令窗口中.该变量在RAM中仅占用76 MB,但显示器是无缓冲的,它会使系统失速!

  1. 我可以覆盖table.disp()不写入的方法matlabroot\toolbox\matlab\datatypes\@table吗?
  2. 可以使用新方法扩展表类C:\MATLAB\@table\ismatrixlike.m吗?我为什么得到

    ismatrixlike(table)
    Undefined function 'ismatrixlike' for input arguments of type 'table'. 
    
    Run Code Online (Sandbox Code Playgroud)

    显然,我做到了

    addpath C:\MATLAB\
    rehash toolboxcache
    
    Run Code Online (Sandbox Code Playgroud)

    我也试过了clear all.

    该路径具有(字母)优先级matlabroot,但缺少table.m类定义.如果我将本机类定义添加到C:\MATLAB\@table,那么我可以运行我的新方法(在a之后clear all).然而:

    >> methods(table)
    
    Methods for class table:
    
    classVarNames   ismatrixlike    table           varfun          
    convertColumn   renameVarNames  unstack      
    
    Run Code Online (Sandbox Code Playgroud)

    只列出新 …

oop methods matlab overriding

18
推荐指数
1
解决办法
427
查看次数

标签 统计

matlab ×1

methods ×1

oop ×1

overriding ×1