フィルターのクリア

I want to gererate pseudorandom integers using randi function, however I want have empty cells between the integers.

1 回表示 (過去 30 日間)
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 件のコメント
Dyuman Joshi
Dyuman Joshi 2023 年 9 月 19 日
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)
Columns 1 through 18 {0×0 double} {[0]} {[1]} {[1]} {[0]} {[0]} {0×0 double} {[0]} {[1]} {0×0 double} {[1]} {[1]} {0×0 double} {[0]} {[0]} {[1]} {0×0 double} {[1]} Columns 19 through 20 {[0]} {[0]}
Bruno Luong
Bruno Luong 2023 年 9 月 19 日
編集済み: Bruno Luong 2023 年 9 月 19 日
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
A = 1×20
NaN 1 0 0 0 1 0 NaN 0 1 1 1 NaN 0 0 1 0 0 1 0

サインインしてコメントする。

採用された回答

Steven Lord
Steven Lord 2023 年 9 月 19 日
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.

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2023 年 9 月 19 日
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
out = 1×25 cell array
Columns 1 through 16 {[1]} {[1]} {[0]} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {[0]} {[0]} {[1]} {[0]} {[0]} {[0]} {[0]} {0×0 double} {0×0 double} Columns 17 through 25 {0×0 double} {0×0 double} {[1]} {[0]} {[0]} {0×0 double} {0×0 double} {0×0 double} {0×0 double}
  1 件のコメント
Yasir
Yasir 2023 年 9 月 20 日
Thank you very much for your replies.
Actualy I want to genereate pseudorandom integers zeros and onces from two souces. The first source is the owner, in case the first souce didn't send bits, the second sources will start sending. This is why I was thinking to generate numeric array using randi with empty cells (four consecutive empty cells), where these empty cell will be filled later from second source.
All gernerated bit stream will be then used as input to 16QAM modulator.
Thanks and regards

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by