I have N samples of training data and M samples of test data, how i combine it together to make it MxN samples.

1 view (last 30 days)
testdata 40X1 cell
traindat 80X1 cell
train_label 80X1 double
I have N samples of training data and M samples of test data, how i combine it together to make it MxN samples. The rows, here, represent each sample and the columns the different types of features detected from a sample. also i want to add an extra column at LAST of the data (preferably): This column should represent the desired labels for the data.
  2 Comments
Ameer Hamza
Ameer Hamza on 8 Mar 2020
Edited: Ameer Hamza on 8 Mar 2020
Can you give a simple example of what you are trying to do? For example, give us 3 training samples and 3 test samples and show us how do you want them converted to 3x3=9 samples.
Also describe what data is stored in these cell arrays.
Balaji M. Sontakke
Balaji M. Sontakke on 8 Mar 2020
I want to give input to classificationLearner in matlab, I refer fishertable = readtable('fisheriris.csv'); where size of fishertable is M X N i.e. 150 X 5, Petal and sepal length and width are predictors, and species is the response.
Just i want to do classification using classificationLearner, my samples are in cell arrays testdata having the size 40 X 3 and traindata having the size 80 X 3 also trainlabel and testlabel are seperately created.
can i create predictors and species like fisheriris.csv with my data(here am attaching mat files of those test and train data).

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 8 Mar 2020
Following code shows how to convert the cell array from your code to the table as generated by fishertable = readtable('fisheriris.csv')
load('db3.mat');
testdata = cell2mat(reduced_testdata')';
testdata_table = array2table(testdata, ...
'VariableNames', ...
{'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'});
sample_labels = repmat("abcd", 40, 1); % creating random data to fill last column
% you should use your testlabels
testdata_table = addvars(testdata_table, sample_labels, ...
'NewVariableNames', 'Species');
  5 Comments
Ameer Hamza
Ameer Hamza on 8 Mar 2020
This should work in MATLAB R2016b. The code join two tables (testdata table entries above and traindata entries below). data_tables has dimension of 120x5.
load('db3.mat');
testdata = cell2mat(reduced_testdata')';
testdata_table = array2table(testdata, ...
'VariableNames', ...
{'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'});
sample_labels = repmat("abcd", 40, 1); % creating random data to fill last column
% you should use your testlabels
testdata_table.Species = sample_labels;
load('db4.mat');
traindata = cell2mat(reduced_traindata')';
traindata_table = array2table(traindata, ...
'VariableNames', ...
{'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'});
sample_labels = repmat("abcd", 80, 1); % creating random data to fill last column
% you should use your testlabels
traindata_table.Species = sample_labels;
data_tables = [testdata_table; traindata_table];

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!