【发布时间】:2016-08-21 01:41:46
【问题描述】:
我有一个大矩阵,我需要从整个大矩阵上运行的滑动窗口中提取一个小矩阵,但是在操作过程中提取的矩阵的内容不会改变,所以我想提取子矩阵而不创建新副本,而是像 C 指针一样指向大矩阵的一部分。我怎样才能做到这一点?请帮帮我,非常感谢:)
【问题讨论】:
-
MATLAB 中没有任何指针,您可以跟踪子矩阵的边界并像这样引用原始矩阵
M(rmin:rmax, cmin:cmax) -
@jodag 但是如果我写 A = M(rmin:rmax, cmin:cmax) 它不会创建一个新矩阵吗?并且写 M(rmin:rmax, cmin:cmax) 有点冗长:(
-
是的,这将创建一个新矩阵。无论如何,当对子矩阵进行计算时,无论如何都会分配一个新矩阵。 MATLAB 不像 C 那样是一种低级语言,您不能直接控制内存分配。 MATLAB 中没有指针。
-
@jodag 函数句柄怎么样? :(
-
@DangManhTruong 这就是过早优化的定义。