How to make array in matlab ( how to inisialisasi array )

 Accepted Answer

Preallocation of an array is usually done with the zeros function:
B = zeros(n)
B = zeros(m,n)
B = zeros([m n])
B = zeros(m,n,p,...)
B = zeros([m n p ...])
where m,n,p,... express the size for the 1st,2nd,3rd,...nth dimension.
If you're not looking for preallocation then your answer is too generic.
Something else I can think of is a generation of a random matrix, see rand and related functions.
All of the basic are well covered, wiht many examples in the getting started guide
EDIT
obj=VideoReader(video);
% (start)
%akhir deklarasi gambar yang ada di axes
numFrames = obj.NumberOfFrames;
waktu = obj.Duration;
iterasi = numFrames/waktu;
vidHeight = obj.Height;
vidWidth = obj.Width;
disp(numFrames);
a = length(numFrames);
frames = zeros(vidHeight,vidWidth,iterasi);
c = 0;
if(~isempty(get(handles.nmvideo,'String')))
try
for n = 1:iterasi:numFrames
c = c+1;
frames(:,:,c) = read(obj,n);
h = axes(handles.axes1);
imshow(frames(:,:,c));
end
catch
msgbox('Codec AVI tidak didukung atau Corupted file AVI','Error','error');
return
end
else
msgbox('Anda harus memilih video terlebih dahulu','Error','error');
end

10 Comments

thx oleg komarov, i have problem about my program... maybe can you help me, i want to make array for inisialisasi frame 1 until frame 32 .... this is my code, maybe you can fix it ... :
obj=VideoReader(video);
% (start)
global frame1;global frame2;global frame3;global frame4;global frame5;
global frame6;global frame7;global frame8;global frame9;global frame10;
global frame11;global frame12;global frame13;global frame14;global frame15;
global frame16;global frame17;global frame18;global frame19;global frame20;
global frame21;global frame22;global frame23;global frame24;global frame25;
global frame26;global frame27;global frame28;global frame29;global frame30;
global frame31;global frame32;
%akhir deklarasi gambar yang ada di axes
numFrames=obj.NumberOfFrames;
waktu=obj.Duration;
iterasi=numFrames/waktu;
vidHeight = obj.Height;
vidWidth = obj.Width;
disp(numFrames);
a=length(numFrames);
disp(a);
if(~isempty(get(handles.nmvideo,'String')))
try
for n = 1:iterasi:numFrames
frame1=read(obj,n);
axes(handles.axes1);
imshow(frame1);
end
,enam);
catch
msgbox('Codec AVI tidak didukung atau Corupted file AVI','Error','error');
return;
end
else
msgbox('Anda harus memilih video terlebih dahulu','Error','error');
end
Please post the correct code in your original message and format it with the {} button.
,enam);
Is definitely an uncomplete line.
Drop the global part, then preallocate:
frames = zeros(vidHeight,vidWidth,iterasi);
c = 0;
Inside the loop
c = c+1;
frame(:,:,c) = read(...)
oleg komarov, i have question , in "frames = zeros(vidHeight,vidWidth,iterasi); " ... is it frames or frame? why in the behind oh your code is frame not frames? ( "frame(:,:,c) = read(...)")... and if i want to display the object, " imshow () " what? imshow (frame) ? or imshow (frames) ?
Sorry just a typo. Call it however you like it, it's the same array.
To display:
imshow(frames(:,:,c))
hhhmmm oleg komarov... i had try it,,, but i can't ... :( ... maybe i must study hard for understand it ...
frames its a variable, oleg ?
See my edit, post error messages and|or unexpected behaviour.
hhhhhmmmmmmmmmmmm...............
Yes, frames is a variable.

Sign in to comment.

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!