Matlab编程代码理解

时间:2015-06-13 08:40:41

标签: matlab

我遇到了一个我无法理解的matlab代码。如果有人知道这个代码意味着什么,那么在这方面帮助我。

Lambda(:,1) = [randi([1,4], 1,4), randi([1,30],1)*rand];

我知道randi将在[min,max]之间返回随机整数。我想知道什么是lambda会得到什么? 行值列值仅标量值

1 个答案:

答案 0 :(得分:1)

嗯..你可以运行代码,看看会发生什么:

[randi([1,4], 1,4), randi([1,30],1)*rand]
ans =
    4.0000    2.0000    4.0000    1.0000   11.9046

所以答案是:一个包含5个条目的行向量。

但让我们更详细一点:使用randi([1,4], 1,4)创建一个大小为1 x 4的行向量,其中包含[min,max]之间的随机整数,即{{1}之间的随机整数}和1。第二部分类似地在4范围内创建一个整数,并将其乘以区间[1,30]中的随机数。 使用(0,1)连接两个数字或向量。这导致了一个大小为[x,y]的行向量,正如我们在开头看到的那样。

最后,您将其分配给1 x 5。与在MATLAB中一样,第一个索引用于行,第二个索引用于列,您选择Lambda(:,1)的第一列。因此,您尝试将Lambda行向量分配给1 x 5列向量。幸运的是,MATLAB非常聪明,可以解决这个问题,所以这个片段无论如何都会有效。如果您首先创建了一个列向量而不是行向量,那将是一个更好,更清晰的解决方案。那将是

5 x 1