小编Bil*_*eey的帖子

比cell2mat更快

我目前正在优化一些代码,并且无法找到比MATLAB更快的方法cell2mat.目前,cell2mat我的代码中的多次使用代表了超过15%的处理时间.

我认为它可以比这更快,因为我知道我将传递给函数的单元格数组的结构.

基本上,单元阵列是NxN,其中:

  1. 左上方的(N-1)x(N-1)块在每个单元格中包含6x6双矩阵

  2. 右下角的(N,N)单元格是MxM双矩阵.

  3. 其他单元格具有连接的正确尺寸,即:

细胞(1:(N-1),N)6xM双基质,细胞(N,1:(N-1))Mx6双基质.(图像添加用于清楚起见,有N=207M=300)

在此输入图像描述

由于单元格将始终填充双精度并且始终为2维,因此我只使用了一小段cell2mat代码,即:

 function m = myCell2Mat(c)

    rows = size(c,1);


        m = cell(rows,1);
        % Concatenate one dim first
        for n=1:rows
            m{n} = cat(2,c{n,:});% 73% of the time spent here
        end
        % Now concatenate the single column of cells into a matrix
        m = cat(1,m{:});% 25.2% …
Run Code Online (Sandbox Code Playgroud)

matlab cell

9
推荐指数
1
解决办法
1292
查看次数

在编辑器中自定义数据提示

这不是一个问题,因为我有答案,但由于我找不到相关的来源,我会在这里发布问题以及答案,以防你感兴趣.(如果我忘记了我是怎么做的,也能够再次找到它).

我在查看一些代码时遇到了一个问题.代码中没有解释大量的变量,每次我想知道变量的含义我必须在数据文件中查看和/或从代码中完成的操作中猜出它们的含义.

没必要说这是非常耗时的,我搜索了减少时间的最佳方法.

首先,我将关于变量的所有解释放在注释中,问题是它在脚本中添加了一个(巨大的!)行.

我还在MATLAB中使用"在编辑模式下启用数据提示".当您将鼠标悬停在已经评估过的MATLAB变量名称上时,它会根据所有维度和至少其第一个值给出它的大小,这样就可以更容易地了解您正在操作的对象.(见下图)

在此输入图像描述

我想到的自然想法如下:是否有可能让MATLAB在数据提示中显示更多自定义信息?

答案是肯定的!

在此输入图像描述

请参阅答案中的代码

matlab

9
推荐指数
2
解决办法
188
查看次数

标签 统计

matlab ×2

cell ×1