Matlab转Python矩阵码

Matlab to Python Matrix Code

我正在尝试将一些代码从 MATLAB 转换为 Python。我一直对这部分 MATLAB 代码感到困惑:

[L,N] = size(Y);
if (L<p)
    error('Insufficient number of columns in y');
end

我理解 [L,N] = size(Y) returns Y 是矩阵时的行数和列数。然而,我对 Python 的经验有限,因此无法理解如何对 Python 做同样的事情。这也是我不明白循环中的 MATLAB 逻辑如何在 Python 中实现的部分原因。

提前致谢!

此外,如果还需要其余代码。这里是。

function [M,Up,my,sing_values] = mvsa(Y,p,varargin)

if (nargin-length(varargin)) ~= 2
    error('Wrong number of required parameters');
end

% data set size
[L,N] = size(Y)

if (L<p)
    error('Insufficient number of columns in y');
end

我仍然不清楚 p 来自您的 post,但是下面的摘录有效地执行了与您在 Python 中的 MATLAB 代码相同的任务。使用numpy,您可以将矩阵表示为数组的数组,然后分别调用.shape 到return 行数和列数。

import numpy as np

p = 2
Y = np.matrix([[1, 1, 1, 1],[2, 2, 2, 2],[3, 3, 3, 3]])

L, N = Y.shape
if L < p:
    print('Insufficient number of columns in y')

非 numpy

 data = ([[1, 2], [3, 4], [5, 6]])    

 L, N = len(data), len(data[0])

 p = 2

 if L < p:
     raise ValueError("Insufficient number of columns in y")
number_of_rows = Y.__len__()
number_of_cols = Y[0].__len__()