Fill an array according to the values of a different array

조회 수: 11 (최근 30일)
Patrick Benz
Patrick Benz 2021년 3월 12일
댓글: Patrick Benz 2021년 3월 17일
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?

채택된 답변

Aghamarsh Varanasi
Aghamarsh Varanasi 2021년 3월 15일
편집: Aghamarsh Varanasi 2021년 3월 15일
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
Patrick Benz
Patrick Benz 2021년 3월 17일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

태그

Community Treasure Hunt

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

Start Hunting!