Append multiple values in one variable
8 views (last 30 days)
Show older comments
hello,
i read an image using
img=imread('612.jpg')
then convert this 512x512 matrix into one column
using
newimg=img(:);
this give me a single column value 786432x1
know i want to insert new picture value started from 786433 and proceed next..
This experiment apply for 500 pictures..
0 Comments
Answers (1)
the cyclist
on 18 Mar 2023
Assuming the image are all the same size, 512x512, then I would "stack" them in the 3rd dimension, then convert everything to a vector at once. You don't mention how the variables are stored, the naming convention, etc, but it would go something like this
% Number of images
N = 500;
% Preallocate the 3d array
img_array = zeros(512,512,N);
% Loop to fill each "slice" in 3d
for ni = 1:N
img_array(:,:,ni) = ... % Here is where you need to figure out how to access each image
end
% Convert the whole thing to a vector. (This will be in the same order as if you had stacked them individual.)
img_vector = img_array(:);
7 Comments
the cyclist
on 19 Mar 2023
% The number of files you have
N = 500;
% Length of each file
L = 786432;
% Preallocate the memory for the large file.
out = zeros(L,N);
% Loop over the input files, and store them
for ni = 1:N
filename = sprintf("%d.csv",ni); % This read 1.csv, 2.csv, 3.csv, etc, up to N.csv
out(:,ni) = readmatrix(filename);
end
% Write output as one long vector
writematrix(out(:),"long.csv");
See Also
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!