Я пытаюсь перевести код с 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. Это также является частью причины, по которой я не понимаю, как логика 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
из вашего сообщения, однако выдержка ниже эффективно выполняет ту же задачу, что и ваш код MATLAB в Python. Используя 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__()