Generate random number between a given sequence using rand and exisiting matrix
显示 更早的评论
Hello,
Is there a way I can generate a random number vector of dimensions N*M*K between a given defined sequence? For example, I would like to generate a 256*2500*16 matrix and the elements of this matrix should be say between the values,8e-4 and 2.5e-8? I have tried to use the rand function with the 'like' option but don't see how to generate between that sequence.
my_needed_matrix = rand(size(my_existing_matrix),'like',my_existing_matrix);
Here my_existing_matrix is the matrix which from which I wish to create another matrix of similar values.
Thank you!
1 个评论
Adam
2016-9-26
You haven't given any information as to how your existing matrix is supposed to contribute to the solution other than by giving its size which is rather trivial. Based on the information you have given Andrei's answer and your plot of it gives exactly what I would expect from your question.
回答(1 个)
Andrei Bobrov
2016-9-26
编辑:Andrei Bobrov
2016-9-26
a = 2.5e-8;
b = 8e-4;
my_needed_matrix = rand(size(my_existing_matrix))*(b - a)+a;
6 个评论
Kash022
2016-9-26
Andrei Bobrov
2016-9-26
编辑:Andrei Bobrov
2016-9-26
Maybe so? (but here my_existing_matrix is vector as in your images):
out = zeros(numel(my_existing_matrix),1);
t = my_existing_matrix ~= 0;
out(t) = rand(sum(t),1)*6e-5 + 1.5e-5;
Andrei Bobrov
2016-9-26
编辑:Andrei Bobrov
2016-9-26
.. I wrote: ".. but here my_existing_matrix is vector as in your images" so that my_existing_matrix should be vector.
and please attach your data as mat - file what you getting in images.
Kash022
2016-9-26
Kash022
2016-9-26
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!