创建稀疏图时出现“意外的MATLAB表达式”

时间:2011-11-04 10:03:08

标签: matlab

我已尝试使用以下代码在MATLAB中创建稀疏图:

cm = sparse([1 1 2 2 3 3 4 5],[2 3 4 5 4 5 6 6],...
     [2 3 3 1 1 1 2 3],6,6)cm =

但是它给了我以下错误

???      [2 3 3 1 1 1 2 3],6,6)cm =
                               |
Error: Unexpected MATLAB expression.

我已从the official site获取此代码,因此我无法理解为何会产生错误。

3 个答案:

答案 0 :(得分:2)

你不应该在最后写cm =部分。也就是说,当你写

cm = sparse([1 1 2 2 3 3 4 5],[2 3 4 5 4 5 6 6],...
     [2 3 3 1 1 1 2 3],6,6)
在命令行上

,您将获得

cm =

   (1,2)        2
   (1,3)        3
   (2,4)        3
   (3,4)        1
   (2,5)        1
   (3,5)        1
   (4,6)        2
   (5,6)        3

这是因为你没有在语句的末尾写一个分号。如果您不想看到cm的值,只需在关闭括号后添加分号。另外...告诉写多行语句。你可以写

cm = sparse([1 1 2 2 3 3 4 5],[2 3 4 5 4 5 6 6],[2 3 3 1 1 1 2 3],6,6)

替代地

答案 1 :(得分:1)

恭喜,您在MATLAB文档中发现了一个错误!

最后的cm =属于下一行,实际上是输入MATLAB时输出的输出

cm = sparse([1 1 2 2 3 3 4 5],[2 3 4 5 4 5 6 6],...
     [2 3 3 1 1 1 2 3],6,6)

MATLAB使用换行符来表示命令的结束,除非你用...结束行,并且在第二行的结束括号之后,它不明白cm应该是什么意思; - )

答案 2 :(得分:1)

MATLAB文档有一个拼写错误,对现有MATLAB背景的人无害,但初学者可能很难识别。引用MATLAB document

cm = sparse([1 1 2 2 3 3 4 5],[2 3 4 5 4 5 6 6],...
  [2 3 3 1 1 1 2 3],6,6)cm =

(1,2)        2
(1,3)        3
(2,4)        3
(3,4)        1
(2,5)        1
(3,5)        1
(4,6)        2
(5,6)        3

真正意味着以下内容:

cm = sparse([1 1 2 2 3 3 4 5],[2 3 4 5 4 5 6 6],...
  [2 3 3 1 1 1 2 3],6,6)

cm =

(1,2)        2
(1,3)        3
(2,4)        3
(3,4)        1
(2,5)        1
(3,5)        1
(4,6)        2
(5,6)        3

请注意,cm =现在位于一个新行上,仅表示sparse函数生成的输出的开头。从这个例子中创建稀疏矩阵你需要做的就是写

cm = sparse([1 1 2 2 3 3 4 5],[2 3 4 5 4 5 6 6],...
            [2 3 3 1 1 1 2 3],6,6)

这将为您提供所需的结果。

总的来说,正如一些评论者指出的那样,我建议在进行更复杂的主题(如稀疏矩阵和图形)之前先阅读一个基本的MATLAB教程。