Fill an array according to the values of a different array

10 visualizzazioni (ultimi 30 giorni)
I have 2 arrays. one is A = 21x2 array and the other is B = 700x2 array.
Exemplary:
A= 24 33
26 34
27 33
In the end, B should be structured in such a way that the value from the 1st column is entered in B as often as it is in the second column (33 lines with "24") of A.
The second problem i've got is that I want to fill an array with the output of a function but hence the function is using
Tiefe=normrnd(mu_Tiefe, sigma_Tiefe);
I want to create new random numbers for every cell of the array.
Is it possible to do that without a loop or do I have to use a loop for that?
Or is it mayby easier to create arrays containing the random numbers and pass the arrays to the function?

Risposta accettata

Aghamarsh Varanasi
Aghamarsh Varanasi il 15 Mar 2021
Modificato: Aghamarsh Varanasi il 15 Mar 2021
Hi Patrick,
Here is a small script for filling array based on another array.
% Lets say
%A = 24 3
% 22 5
% 34 2
A = [24 3; 22 5; 34 2];
B = zeros(1,sum(a(:,2)));
count = 1;
for i = 1:length(A)
idx = zeros(1,length(B));
idx(count : count + A(i,2)) = 1;
B(logical(idx)) = A(i,1);
count = count + A(i,2);
end
For generating an array of random numbers refer to this documentation page.
  1 Commento
Patrick Benz
Patrick Benz il 17 Mar 2021
Thx for the small script.
Is there maybe a different approach to do it without a loop?
For the second case, I think I didn't really point out what I was looking for. But I solved the the issue.
When using normrnd
normrnd(mu_Tiefe, sigma_Tiefe,Anzahl,1)
the third and fourth parameter are for the size of the array.

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!