Borrar filtros
Borrar filtros

Create FOR loop to insert the matrix elements row-wise

18 visualizaciones (últimos 30 días)
tbaracu
tbaracu el 16 de Ag. de 2020
Comentada: tbaracu el 16 de Ag. de 2020
I want to create a matrix in an equivalent way as it is possible in C++: just to insert the elements one after the other with a loop like:
cout<<"\nEnter elem. of aug. matrix row-wise:\n";
for (i=1;i<=n;i++) {
for (j=1;j<=n+1;j++) {
cin>>a[i][j]; //input the elements of array
}
}
It is possible to make this in MAtlab ? Something like below, but without to press enter after each element:
% lets say, A=[1 2 ; 5 7 ] but I want just to write only 1 2 5 7 and press ENTER.
n=input('matrix dimension:')
for i=1:n
for j=1:n
a(i,j)=input(' Insert the elements row wise, one after the other:')
end
end
a=reshape(a,n,n)

Respuestas (3)

KSSV
KSSV el 16 de Ag. de 2020
Editada: KSSV el 16 de Ag. de 2020
n=input('number of elements = ') % n = 4
for i=1:n;
a(i)=input('elements-'); % 1 2 5 7
end
a=reshape(a,n/2,n/2)' % not should be even for this example
  2 comentarios
tbaracu
tbaracu el 16 de Ag. de 2020
You are also close, but your code requires to press enter after each element.
I want just to write the dims of the matrix (n or n x m), then to input from keyboard the series 1 2 5 7 , press ENTER and the matrix to appear.
KSSV
KSSV el 16 de Ag. de 2020
How about this? When elements is prompted, you enter [1 2 5 7]. Type your values in square brackets.
n=input('number of elements = ') % n = 4
a = input('elements-'); % [ 1 2 5 7]
a=reshape(a,n/2,n/2)' % not should be even for this example

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 16 de Ag. de 2020
% lets say, A=[1 2 ; 5 7 ] but I want just to write only 1 2 5 7 and press ENTER.
n = input('matrix dimension:')
for i=1:n
s = input( sprintf('Insert the elements for row #%d, all on one row: ', i), 's');
a(i,:) = str2double(strsplit("[" + s + "]"));
end
  4 comentarios
tbaracu
tbaracu el 16 de Ag. de 2020
Just to write all set of elements from the keyboard like 1 5 7 9... then press ENTER and the matrix to be considered by MAtlab.
Example: for matrix [ 1 5 ; 7 9] I want just to write after the FOR instruction is activated, just 1 5 7 9 and the 2 x 2 matrix to be completed.
tbaracu
tbaracu el 16 de Ag. de 2020
Walter Roberson get closer, but still it is necessary an improvement, because the result looks like this:
matrix dimension:2
n =
2
Insert the elements for row #1, all on one row: 1 5
Insert the elements for row #2, all on one row: 7 9
a =
NaN NaN
NaN NaN

Iniciar sesión para comentar.


tbaracu
tbaracu el 16 de Ag. de 2020
It should be something like Matlab after reading 1 5 7 9 initially considers the row matrix [ 1 5 7 9] then split it in two rows to make it [1 5 ; 7 9].
Or, in other example, given from keyboard -----> 1 3 4 7 5 6 1 8 6 -----> press ENTER -----> Matlab initially considers the row matrix [ 1 3 4 7 5 6 1 8 6 ] and split it in 3 rows according to the dim of the matrix to obtain [ 1 3 4 ; 7 5 6 ; 1 8 6 ].

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by