how to create different matrices?

2 visualizaciones (últimos 30 días)
arian hoseini
arian hoseini el 7 de Dic. de 2022
Comentada: arian hoseini el 7 de Dic. de 2022
i have 30,000 rand value that i want to separate 400 to 400...then i wanna plot them but the x axis should start at 0 not 400 or 800 or...any help please?
  3 comentarios
arian hoseini
arian hoseini el 7 de Dic. de 2022
yes sorry i meant i need the first 400 num of that matrix(30000) to be plot start from 1 to 400 next one should be 401 to 800 then...and i need to save these plot with saveas(gcf,[num2str(i),'.jpg']) and i need the first 400 num in a matrix then next one in another matrix...
arian hoseini
arian hoseini el 7 de Dic. de 2022
for the matrix lets say i have 10 num in a matrix but i want to change it into 10 matrices...
[1 2 3 4 5 6 7 8 9 10]
[1]
[2]
.
.
[10]

Iniciar sesión para comentar.

Respuesta aceptada

Jonas
Jonas el 7 de Dic. de 2022
you could split them into multiple 400x1 vectors by this
data=rand(30000,1);
data=reshape(data,400,1,[]);
size(data)
ans = 1×3
400 1 75
you can then get each vector using indexing data(:,:,idx)
for idx=1%:75 % commented out to avoid to much plotting here
plot(0:399,data(:,:,idx));
% saveas(gcf,[num2str(idx),'.jpg']);
end
  11 comentarios
DGM
DGM el 7 de Dic. de 2022
Editada: DGM el 7 de Dic. de 2022
You can do that, but you'll have to figure out how you want the image shaped, whether you want the ticks plotted, etc.
npoints = 30000; % or some multiple of 400
blocklen = 400;
startidx = 0;
% generate x,y
x = startidx:startidx+npoints-1;
y = rand(npoints,1);
% reshape
x = reshape(x,blocklen,[]);
y = reshape(y,blocklen,[]);
% plot and capture
nframes = size(x,2);
allframes = cell(nframes,1);
for k = 1:nframes
plot(x(:,k),y(:,k))
allframes{k} = frame2im(getframe(gcf));
end
This will save all the frames in a cell array. Alternatively, you can write them using imwrite().
Note that as images, the details of the start/end indices is moot, since the ticks aren't going to show that detail well enough for anyone to tell. You could always try to enforce the exact axis limits, but it's still not going to help much.
% place this in the loop between plotting and capture
xlim(x([1 end],k))
ylim([0 1])
arian hoseini
arian hoseini el 7 de Dic. de 2022
thanks

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Productos


Versión

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by