I want to gererate pseudorandom integers using randi function, however I want have empty cells between the integers.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Yasir
am 19 Sep. 2023
Kommentiert: Yasir
am 20 Sep. 2023
I want to gererate pseudorandom integers using randi function, however I want have empty cells between the integers, for example
1001011100 [] [] [] []100011[] [] [] []
Thank you in advance
2 Kommentare
Dyuman Joshi
am 19 Sep. 2023
It's not possible to have empty "cells" (elements) in a numeric array.
There are workarounds possible involving cell arrays -
%Total length
N = 20;
y = num2cell(randi(2,1,N)-1);
%Amount of empty doubles to have in the cell array
n = 5;
k = randperm(N,n);
y(k) = {[]};
disp(y)
Bruno Luong
am 19 Sep. 2023
Bearbeitet: Bruno Luong
am 19 Sep. 2023
All those comments/answers about numerical array cannot have holes but I'm surprised nobody suggests to put instead NaN (aka double.missing) at the place where OP want to put empty array?
A = randi([0 1],1,20);
A(randi(end,1,4)) = NaN;
A
Akzeptierte Antwort
Steven Lord
am 19 Sep. 2023
Numeric arrays in MATLAB can't have "holes".
Perhaps if you describe in more detail how you're hoping to use this type of array we may be able to suggest a data storage strategy that will facilitate your use case. It's possible, for example, that a sparse array may be what you're looking for.
0 Kommentare
Weitere Antworten (1)
Walter Roberson
am 19 Sep. 2023
It is not possible to have empty positions in a numeric array. You would need to use a cell array, such as
N = 3;
out = {};
for K = 1 : N
thislen = randi(10);
thispart = num2cell(randi([0 1], 1, thislen));
out = [out, thispart, {[] [] [] []}];
end
out
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!