i want to create A 3-D matrix and i want a pixel to be increasing by 1 in each of the matrix. how can i do that

1 view (last 30 days)
i want the 3rd row and 3rd column in each matrix to be increasing with every iteration. i hvave done this but it is not working. help, I am new to matlab
m=zeros(10,10,30); %define 3-D 10 by 10 by 30 matrix
n=30; %number of matrix
for k=1:n
t=0:1.0; %specify the value a pixel will take in each iteration
m(:,:,k)(3,3)=t; %the 3rd rown and 3rd column in each matrix will increase by t
display(m(:,:,k))
k=k+1;
t=t+0.1;
end

Accepted Answer

Geoff Hayes
Geoff Hayes on 13 Jul 2018
Folakemi - the sytax
m(:,:,k)(3,3)=t;
is invalid. Do you really mean for t to be a 1x2 array with
t = 0:1.0;
or do you want it to be a 1x10 (or 10x1) array with elements evenly distributed from 0 to 1.0? If the latter, then try
t = linspace(0,1,10);
and do
t = linspace(0,1,10);
for k=1:n
m(3,:,k) = t;
m(:,3,k) = t';
end
If you want to increaser t for subsequent iterations, then you would need to do
t = linspace(0,1,10);
for k=1:n
m(3,:,k) = t;
m(:,3,k) = t';
t = t + 1;
end
  4 Comments
Geoff Hayes
Geoff Hayes on 13 Jul 2018
Edited: Geoff Hayes on 13 Jul 2018
Perhaps this
t = 0;
for k=1:n
m(3,:3,k) = t;
t = t + 1/n;
end
or
t = linspace(0,1,n);
for k=1:n
m(3,3,k) = t(k);
end

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!