How to Convert 2D matrix to 3D with time as 3rd dimension

I have a code which results in a 2D matrix .The code is in a loop . So I get many 2D matrix values. I want to convert it into a 3D matrix with 3rd Dimension as time. How can I do this ?

Réponses (2)

A(:,:,k)=B

7 commentaires

I want K to be the time. shall I use tic toc command ?
Azzi Abdelmalek
Azzi Abdelmalek le 13 Juin 2013
Modifié(e) : Azzi Abdelmalek le 13 Juin 2013
You can not, K should be a positive integer
Then how can I do it with respect to time
James Tursa
James Tursa le 13 Juin 2013
Modifié(e) : James Tursa le 13 Juin 2013
Add a line:
the_time(k) = whatever format of time you want to store
Reminder that best practice would be to pre-allocate A and the_time.
what does that mean @james. I did not understand your answer.
Do you mean you want B to be the time? If so, yes, tic/toc would work. You would call tic outside the loop then have something like this inside:
A(:,:,k) = toc;
You can also use a struct format
for k=1:5
A=rand(4); % for example
data(k).time=k % for example
data(k).matrix=A
end

Connectez-vous pour commenter.

hi,
You can the method provided above, but the function "toc" may have problems , i propose using an integer variable , here is an example :
% Eeach time we get a 2D AWGN matrix with different Standard Deviation
N=100;
L=200;
for n=1:N
r=rand;
M(:,:,n)=r*randn(L);
end
If your loop indexes start differently( negative values per example , try this solution :
N=100;
L=200;
time=1;
for n=-10:N
r=rand;
M(:,:,time)=r*randn(L);
time=time+1;
end

Catégories

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by