有没有办法在Matlab中指定矩阵视图,而不是像NumPy中那样复制矩阵本身?

有没有办法在Matlab中指定矩阵视图,而不是像NumPy中那样复制矩阵本身?,matlab,memory,numpy,matrix,Matlab,Memory,Numpy,Matrix,。。将B的第一行复制到A 是否有创建矩阵视图对象的方法,例如 A = B(1, :) 能够参考矩阵的视图?而且,这也会让事情变得如此 frB = view(B(1, :)) 请参见此NumPy示例,它正好做到了这一点: 您可以使用Matlab中的指针指向同一矩阵,而无需复制。下面是一个基于 首先定义一个继承自句柄类的类,它是Matlab的指针类。类属性将存储矩阵 B(1, 3) = 123123; % set B(1, 3) to 123123 for illustration pu

。。将B的第一行复制到A

是否有创建矩阵视图对象的方法,例如

A = B(1, :)
能够参考矩阵的视图?而且,这也会让事情变得如此

frB = view(B(1, :))
请参见此NumPy示例,它正好做到了这一点:

您可以使用Matlab中的指针指向同一矩阵,而无需复制。下面是一个基于

首先定义一个继承自
句柄
类的类,它是Matlab的指针类。类属性将存储矩阵

B(1, 3) = 123123;     % set B(1, 3) to 123123 for illustration purposes
frB(3) = 9999;        % set B(1, 3) to 9999
disp(B(1, 3));        % prints 9999

您可以向
HandleObject
添加更多函数,以符合所需的视图。

我很惊讶HandleMatrix类不是Matlab中的默认对象。。但我想这样做是为了让面向编程较少的用户更容易理解
classdef HandleObject < handle
   properties
      Object=[]; % This will be your matrix
   end

   methods
      function obj=HandleObject(receivedObject) %This is the constructor
         obj.Object=receivedObject;
      end
   end
end
M = HandleObject(ones(5,5)); %The constructor passes the matrix to the Object property
M_view = M; %M_view is a copy of the pointer

M.Object(1,1) = 5; %Change the matrix by changing the Object property 

display(M_view.Object(1,1)) %This should display 5