gpt4 book ai didi

matlab - 如何随机分配矩阵元素

转载 作者:行者123 更新时间:2023-12-02 09:36:50 33 4
gpt4 key购买 nike

在Matlab中,我想知道如何为任何给定大小的矩阵随机分配矩阵内的值?

例如:

Enter non-zero elements in 3*3 matrix? 3

1
4
7

这些元素将被随机放置在 3*3 矩阵中,其余 6 个元素为零。

一般来说,对于我们在矩阵中输入一定数量的非零元素,矩阵中的其余元素将变为零。

如何在 Matlab 中编写上述示例的代码?我必须给出非零元素的数量作为输入,并在矩阵内随机分配输入值,而不指定任何特定的行或列。

最佳答案

使用 randperm 可以非常简单地做到这一点和 linear indexing

V = [1,4,7];
M = zeros(3);
M(randperm(numel(M), numel(V))) = V

如果您有旧版本的 Matlab(请参阅评论,如果您使用的是 Octave,这也适用),那么您可以尝试:

V = [1,4,7];
M = zeros(3);
I = randperm(numel(M));
M(I(1:numel(V))) = V

关于matlab - 如何随机分配矩阵元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24989752/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com