Matrix filling with for loop

27 visualizaciones (últimos 30 días)
Bruccio
Bruccio el 11 de En. de 2018
Comentada: Bruccio el 11 de En. de 2018
Hi everybody. so i'm an ultra beginner in matlab and i need your help to find a solution to the problem i have.
i'm trying to make a very simple calculations for solid state physics, it should be something like z = constant * x/y , to plot a surface graph of z, to evaluate the applicability limits of my experiment. x and y are identical vectors from 1 to 100 in steps of 1. In my mind, i think I need to build a matrix where the elements cosists in all the possible ratios between the single elements of x and y, in order to obtain my surface. I think i need to employ a for loop but i'm a bit stuck on the syntax. is there anyone that can help me? many thanks Francesco
  2 comentarios
M
M el 11 de En. de 2018
Did you already read the documentation ?
If yes, what have you tried and what is your problem exactly ?
Bruccio
Bruccio el 11 de En. de 2018
yes, i read the documentation. i can't formalize decently the loop so that the matrix is filled with the values i refer to in my question. my current code is
f = zeros (100, 100) %I create the matrix that will lateley be filled with the values x = (1: 1: 100) %create the vectors
for w = (:, x)
for s = (:, x) f (:, x) = w/s end
of course MATAB tells me that : is not a valid my skill and experience in matlab are EXTREMELY limited and i'm still trying to figure out how coding works. i've seen a lot of tutarials and read a lot of voices, still need to figure out how to translate everything into code

Iniciar sesión para comentar.

Respuesta aceptada

M
M el 11 de En. de 2018
Editada: M el 11 de En. de 2018
f = zeros (100, 100) %I create the matrix that will lately be filled with the values
Correct, but you don't have to define your x vector to do the for loop.
If you want to loop over 100 element in step of one, you can write it like :
for i=1:1:100
for i=1:100
Both solution are the same because default step is 1.
But you should start to write the program you want to use, and then convert it into Matlab language.
  5 comentarios
M
M el 11 de En. de 2018
Editada: M el 11 de En. de 2018
Ok, it is clear now.
So, the way you initialize your matrix is ok.
f = zeros (100, 100);
what you can do, is to loop over 100 elements, for example for each row, and set each row to the desired value. Something like :
f=zeros(100,100);
for i = ... % loop over 100 elements
% i should take value 1, 2,3 ...
% then you can access ith row of f with f(:,i)
f(:,i) = ... % set the desired value for each row
% for example, your first row can be defined as
% f(:,1)=[1:100]'
end % end of for loop
f % display the result
Bruccio
Bruccio el 11 de En. de 2018
exactly. Thanks a lot man. you're my favourite person of the week.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by