代码之家  ›  专栏  ›  技术社区  ›  A.Torres

Matlab到Python的矩阵代码

  •  1
  • A.Torres  · 技术社区  · 7 年前

    我正试图将一些代码从Matlab翻译成Python。我被这部分的Matlab代码难住了:

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

    我知道当y是矩阵时,[l,n]=size(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
    
    3 回复  |  直到 7 年前
        1
  •  4
  •   rahlf23    7 年前

    我还不清楚 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')
    
        2
  •  2
  •   C.Nivs    7 年前

    非麻木的

     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")
    
        3
  •  1
  •   Amir Dezhkam    7 年前
    number_of_rows = Y.__len__()
    number_of_cols = Y[0].__len__()