How to convert the following Matlab loop into Python?
<p>I have been working on translating Matlab code into Python and came across a loop that I'm having some difficulty converting as I'm fairly new to both the languages.</p>

<pre><code>if fdp &gt;=2
degreeTwoVector=[];
counter =1;
for i = 1:numVariables
    for j = 1:numVariables
        degreeTwoVector(counter,:) = [i j 0];
        counter = counter +1;
    end
end

sortedDegreeTwoVector = sort(degreeTwoVector,2);
degreeTwoVector = unique(sortedDegreeTwoVector, 'rows');

combinationVector = [combinationVector; degreeTwoVector];
end
</code></pre>

<p>Here's what I could come up with while converting it to python(incomplete):</p>

<pre><code>if fdp &gt;= 2:
    degreeTwoVector = np.array([])
    counter = 1
    for i in range(1, numVariables+1):
        for j in range(1, numVariables+1):
        degreeTwoVector(counter, :) = np.array([i, j, 0])
        counter = counter + 1
        break
    sortedDegreeTwoVector = degreeTwoVector[np.argsort(degreeTwoVector[:, 1])]
</code></pre>

<p>I certainly know there are some mistakes in it. So I'd be grateful if you could help me complete the conversion and correct any mistakes. Thanks in advance!</p>

<p>You are not too far off:
You do not need a <code>break</code> statement, it is causing a precocious, well, break to the loop (at the first iteration).
So here you go:
</p>

<pre><code>numVariables = np.shape(X)[0] #  number of rows in X which is given
if fdp &gt;= 2:
    degreeTwoVector = np.zeros((numVariables, 3)) #  you need to initialize the shape
    counter = 0 # first index is 0
    for i in range(numVariables):
        for j in range(numVariables):
            degreeTwoVector[counter, :] = np.array([i, j, 0])
            counter = counter + 1 #  counter += 1 is more pythonic
    sortedDegreeTwoVector = np.sort(degreeTwoVector, axis=1);
    degreeTwoVector = np.vstack({tuple(row) for row in sortedDegreeTwoVector})

    combinationVector = np.vstack((combinationVector, degreeTwoVector))
</code></pre>

<p><strong>EDIT</strong>: added equivalent of code outside the loop in the original question.</p>

<p>Apart from the fact that i don't see where you defined <code>combinationVector</code>, everything should be okay.</p>

python matlab python-2.7