Understand a command line to create a matrix

1 vue (au cours des 30 derniers jours)
Mark Sc
Mark Sc le 8 Oct 2021
Commenté : Geoff Hayes le 8 Oct 2021
Hi all,
I am trying to write the following matlab line into another program, I already found it in the internet, it works perfectly, but I can not understand excatly how it work ??
clc; nelments= 3; npoint= 5;
connect=(1:npoint) + (npoint-1)*(0:nelments-1).'

Réponse acceptée

Geoff Hayes
Geoff Hayes le 8 Oct 2021
@Mark Sc - this is an interesting piece of code. Given that
>> x = (1:npoint)
x =
1 2 3 4 5
and that
>> y = (npoint-1)*(0:nelments-1).'
y =
0
4
8
we are trying to add a 1x5 matrix with a 3x1 matrix with the output being a 3x5. Looking at the plus for 2-D inputs, if one input is a column vector, and the other is a row vector then your output (in this case) will be that 3x5 matrix where we add 0 to each element of x to get the first row of the new matrix, 4 to each element of x to get the second row of the new matrix, and 8 to each element of x to get the third row.
>> x + y
ans =
1 2 3 4 5
5 6 7 8 9
9 10 11 12 13
  2 commentaires
Mark Sc
Mark Sc le 8 Oct 2021
Thank you for clear explanation,
Not sure if possible to ask could we do the same in python ??
If so, could you provide it ??
Geoff Hayes
Geoff Hayes le 8 Oct 2021
@Mark Sc - I tried doing something similar in Python but observed an error
Traceback (most recent call last):
File "py-add.py", line 4, in <module>
c=a+b
ValueError: operands could not be broadcast together with shapes (5) (3)
so from this one example it seems that it behaves a little differently than MATLAB. It shouldn't be too hard to write the code to do what you want though.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by