MATLAB: Writing a script to create a table based on user input with row names and columns

arrayMATLABscripttable

I am writing a script that takes in user input for creating a table, but I cannot seem to find out how to prompt the user for row and column names based on how many rows and columns they select.
The image shows an example of what kind of table I would like to create.
This is what I have so far:
row = input('Enter number of rows: ');
col = input('Enter number of columns: ');
for i = 1:row
promptRow = ['Row ' num2str(i) ' Name: '];
x = input(promptRow, 's');
for j = 1:col
promptCol = ['Column ' num2str(i) ' Name: '];
y = input(promptCol, 's');
str = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': '];
A(i,j) = input(str);
end
end
A;
T = array2table(A,...
'VariableNames',{x},...
'RowNames', {y});

Best Answer

Do it like this,
row = input('Enter number of rows: ');
col = input('Enter number of columns: ');
A = zeros(row,col);
now before asking the user to input values of the matrix, ask for the row and column names,
rowNames = input('Enter names of rows separated by a space: ',s);
rowNames = strsplit(rowNames);
colNames = input('Enter names of column separated by a space: ',s);
colNames = strsplit(colNames);
for i = 1:row
for j = 1:col
str = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': '];
A(i,j) = input(str);
end
end
then create the table,
T = array2table(A,'VariableNames', colNames,'RowNames', rowNames);
Hope it helps.