Matlab 里的 PivotTable

作者: , 共 1284 字 , 共阅读 0

Excel 的数据透视表是一个很好用的功能,我写了一个 Matlab 版本,在处理上和 Excel 的透视表差不多,还差一个 filter 而已。

一个简单的例子:

let
    inMatrix = {
        '2009', 'Mon', 12, 31;
        '2009', 'Wed', 11, 34;
        '2009', 'Fri', 1, 4;
        '2009', 'Mon', 3, 4;
        '2009', 'Wed', 9, 6;
        '2009', 'Fri', 1, 4;
        '2010', 'Mon', 18, 15;
        '2010', 'Wed', 11, 21;
        '2010', 'Wed', 1, 4;
        };
then
    pivottable(inMatrix, 1, 2, 3, @sum) output a cell
            []    'Fri'    'Mon'    'Wed'
        '2009'    [  2]    [ 15]    [ 20]
        '2010'       []    [ 18]    [ 12]
    pivottable(inMatrix, [1 2], [], 3, @sum) output a cell
        '2009'    'Fri'    [ 2]
        '2009'    'Mon'    [15]
        '2009'    'Wed'    [20]
        '2010'    'Mon'    [18]
        '2010'    'Wed'    [12]
    pivottable(inMatrix, [], 2, 3, @sum) output a cell
        'Fri'    'Mon'    'Wed'
        [  2]    [ 33]    [ 32]

更多帮助可在 Matlab 命令行 help pivottable。

我已经提交到了Matlab Central File Exchange,觉得好的同学们帮忙打个五颗星吧。

Q. E. D.

类似文章:
Matlab 的 database 工具箱只支持 ODBC 数据库连接,在使用之前需要先设置 ODBC 数据源。之前在 Excel 里用的是 ADODB ,使用 ADODB 的好处是无需设置 ODBC 源,似乎效率也要高一些(但我一直没弄懂 ADODB 是什么东西,所以效率这东西我也说不清)。
相似度: 0.130
编程 » Matlab
写了一个统计代码量的函数,函数已上传到 Matlab Central File Exchange下载地址,使用方法:
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
我写了一个期权到期收益结构的 Excel 模板。欢迎大家无聊的时候使用。
这个 Excel 模板使用参数法和历史法计算资产组合的VaR,两个函数分别是 ParaVaR 和 HistVaR ,是以前写的VaR Primer的一个实现。具体使用方法可参考模板以及 VBA 的代码注释。
2014-03-25 更新:我已经将该类修改成函数形式,并增加新功能,参见更新 Excel 的数据库查询函数库
最近用 Matlab 写了个东西,运行效率不如我意。用 Profiler 跟踪了一下,结果让我大吃一惊。其中三分之一的时间花费在 datestr 这个函数上,六分之一的时间花费在 save 和 load 数据上。这里先谈前一个问题,关于 save 和 load 的效率以后再谈。
编程 » C++, fmt
C++的fmt::format格式化库,由于效率高,功能强大,相关的 API 已经进入C++20,但其文档和 API 细节无法恭维。
编程 » Matlab
第一步,which函数可用来获取 Matlab 函数的全路径(包含路径和文件名)。
编程 » Matlab
Matlab 在启动时会自动运行脚本startup.m。在这个脚本里可以自动修改当前目录,修改显示方式等等。比如
在 MIT BBS 上看到一个有趣的题目
标准的期望-方差组合优化目标中有一个参数$ \lambda$