为什么repmat(1,(1,10))在matlab中不起作用?

时间:2015-05-13 20:06:02

标签: matlab

这是代码。

>> a=ones(1,10);
>> b=size(a);
>> repmat(1,b)

ans =

     1     1     1     1     1     1     1     1     1     1

>> repmat(1,(1,10))
 repmat(1,(1,10))
            |
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.

有谁知道为什么?为什么错误就是那样?谢谢。

3 个答案:

答案 0 :(得分:6)

表达式size(a)返回[1 10],而不是(1,10)。所以相当于:

repmat(1, [1 10]);

以下是一些有用的文档:

答案 1 :(得分:3)

与示例代码完全等效的是repmat(1,size(ones(1,10)))。或者,您可以使用repmat(1,[1,10]),对于必须使用[]的数组构造,圆括号()仅用于函数调用和索引。

答案 2 :(得分:0)

Repmat用于创建一个包含n个重复的源数组副本的数组(A)。因此,第二个参数是一个单一的标量,用于定义A的副本数量,即第一个参数。

您可以将矢量用于第二个参数,但它定义了结果在不同维度中的副本数。语法将是:repmat(1,[1 10])