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( 返回 Y 是矩阵时的行数和列数。然而,我对Python的经验有限,因此无法理解如何使用Python做同样的事情。这也是我不明白如何在 Python 中实现循环中的 MATLAB 逻辑的部分原因。

提前谢谢你!

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

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是什么,但是下面的摘录有效地执行了与Python中的MATLAB代码相同的任务。使用numpy,可以将矩阵表示为数组数组,然后调用.shape分别返回行数和列数。

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')

non-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__()

最新更新