MATLAB Answers

0

How to add 0 in a column to form an array in which all columns are with equal rows?

Asked by Matheus Brito on 10 Jul 2019
Latest activity Answered by Kevin Phung on 10 Jul 2019
I have 8 txt files, containing 2 columns each file. However each column has a different number of rows.
This way, how can I join these 16 columns into just one file and insert 0 at the end of each column so that they all have the same row size as my largest column???.
thank you!

  0 Comments

Sign in to comment.

1 Answer

Answer by Kevin Phung on 10 Jul 2019
 Accepted Answer

here is an example:
a = [1 2 3]';
b = [1 2]';
c = [1 2 3 4 5 6 7]';
sets = {a,b,c}; % let a, b, and c be your column sets. Store them in an array 'sets'
max_size = 0;
%figure out the maximum size
for i = 1:numel(sets)
if size(sets{i},1) > max_size
max_size = size(sets{i},1); % set max size, if current column is greater than the current max size
end
end
% append zeros if smaller than the max size
for i = 1:numel(sets)
if size(sets{i},1) < max_size
sets{i} = vertcat(sets{i},zeros(max_size-size(sets{i},1),1));
end
end
sets = cell2mat(sets) %concatenate into a matrix

  0 Comments

Sign in to comment.