Append multiple values in one variable
9 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
the cyclist
2023 年 3 月 18 日
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 件のコメント
the cyclist
2023 年 3 月 19 日
% 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");
参考
カテゴリ
Help Center および File Exchange で Convert Image Type についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!