我想在matlab中创建一个带有500个单元格(50行,10列)的矩阵,如何通过随机二进制数字创建和初始化它?我想要50*10比例的这样的东西作为样本3*4
0 1 1 1
0 0 0 0
1 1 1 1
在它之后,如何获得任何行的十进制方程?比如第1行等于7的十进制数
ang*_*nor 11
为什么不用randi
来生成随机整数?
A = randi([0 1], 50, 10);
Run Code Online (Sandbox Code Playgroud)
并将二进制行转换为数字 - 如前面的答案:
bin2dec(num2str(A(n,:)))
Run Code Online (Sandbox Code Playgroud)
试试这个:
A = rand(50, 10) > 0.5;
Run Code Online (Sandbox Code Playgroud)
n
第th行的十进制等值由下式给出:
bin2dec(num2str(A(n,:)))
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意,
sum( A(n,:) .* 2.^(size(A,2)-1:-1:0) ) % for big endian
sum( A(n,:) .* 2.^(0:size(A,2)-1) ) % for little endian
Run Code Online (Sandbox Code Playgroud)
这比几倍快bin2dec
.
另外一个选项:
A=round(rand(50,10));
Run Code Online (Sandbox Code Playgroud)
第n行的十进制eq由下式给出:
bin2dec(num2str(A(n,:)))
Run Code Online (Sandbox Code Playgroud)