Understand a command line to create a matrix
    11 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Mark Sc
 el 8 de Oct. de 2021
  
    
    
    
    
    Comentada: Geoff Hayes
      
      
 el 8 de Oct. de 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).'
0 comentarios
Respuesta aceptada
  Geoff Hayes
      
      
 el 8 de Oct. de 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 comentarios
  Geoff Hayes
      
      
 el 8 de Oct. de 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.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Call Python from MATLAB en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

