How to fill a matrix column by column better than by a for loop?
25 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ulrich Becker
el 26 de Jun. de 2020
Comentada: Tommy
el 27 de Jun. de 2020
Want to parametrize areas for plotting/numerical integration/whatnot.
E.g. x-values: 0..1
y-values: x-1 ... x^3+1
This does the job, but it is awful:
xx=0:0.1:1;
nxx=length(xx);
nyy=10;
xm=repmat(xx',1,nyy);
ym=zeros(nxx,nyy);
for ii=1:nxx
xii=xx(ii);
ym(ii,:)=linspace(xii-1,xii^3+1,nyy);
end
Thanks in advance!
0 comentarios
Respuesta aceptada
Tommy
el 26 de Jun. de 2020
How about something like this?
xx = 0:0.1:1;
nxx = numel(xx);
nyy = 10;
xm = repmat(xx',1,nyy);
base = linspace(0,1,nyy);
starts = xx-1;
stops = xx.^3+1;
ym = starts(:) + base.*(stops(:)-starts(:));
Credit to the following answer:
2 comentarios
Más respuestas (1)
Ulrich Becker
el 26 de Jun. de 2020
Editada: Ulrich Becker
el 26 de Jun. de 2020
1 comentario
Tommy
el 27 de Jun. de 2020
Nice and neat, thanks for this! In case anyone reading isn't already aware:
a=[1;2;3] % is a column vector
a(:) % is still a column vector
Ver también
Categorías
Más información sobre Loops and Conditional Statements 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!