Clear Filters
Clear Filters

how to generate random data

11 views (last 30 days)
fred bnm
fred bnm on 7 Jan 2016
Answered: Walter Roberson on 7 Jan 2016
number of data = 1000; dimension=20; and save in mat format.
  5 Comments
jgg
jgg on 7 Jan 2016
I'm not sure what you mean? What kind of labels do you want assigned?
the cyclist
the cyclist on 7 Jan 2016
How about this, fred? Spend the time to compose a complete, coherent description of what it is that you want as input and output from your program. This isn't twitter; feel free to use more than 140 characters.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 7 Jan 2016
data = rand(1000,4);
If the 4 class labels are to be random and equal probability but not necessarily exactly equal number, then
label = randi(4, 1000, 1);
If the 4 class labels must be equal occurrence then
population = [1 * ones(250,1); 2 * ones(250,1); 3 * ones(250,1); 4 * ones(250,1)];
label = population(randperm(1000));
If you wanted a precise distribution that was not equal numbers, then you could adjust the counts in the population matrix.
Your data is 4 dimensional. You cannot plot 4 spatial dimensions. You can encode the 4th dimension as color, but you need to be careful; see http://blogs.mathworks.com/steve/2014/10/20/a-new-colormap-for-matlab-part-2-troubles-with-rainbows/
pointsize = 20;
scatter3(data(:,1), data(:,2), data(:,3), pointsize, data(:,4)); %4th dimension used as color
colormap(parula); %needs R2014b or later
And to add the labels:
labstr = cellstr( num2str(label(:)) );
text( data(:,1), data(:,2), data(:,3), labstr );
this is going to be rather crowded...

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!