matlab程序调试没问题,计算时显示:错误使用fprintf,没有为稀疏输入定义函数 是什么意思

matlab程序调试没问题,计算时显示:错误使用fprintf,没有为稀疏输入定义函数 是什么意思,第1张

MATLAB的语句是以行为单位解释执行的,大多数语句不允许断为多行(少数情况下,例如输入数组,是允许分为多行输入的)。

所以,解决问题的最简单方法,就是把现在fprintf的4行语句合并为1行。

如果写成一行显得太长而不便于阅读,可以在换行前使用续行符(line

continuation

operator)来进行断行。MATLAB中的续行符由三个点组成(),称为Dot-Dot-Dot

或Ellipsis,作用类似于C语言中的续行符“\”,即,只是从书写上分行,而当程序被编译或解释时,逻辑上认为没有分行。

MATLAB中使用

fprintf

输出分号并没有什么特殊的,直接在格式字符串最后的

\n

前面加上分号即可。

稀疏矩阵定义:

即其中只有很少非零元素的矩阵,这样的矩阵就成为稀疏矩阵,这种特性提供了矩阵存储空间和计算时间的优点,例如:

A=[ 0 0 0 5;

0 2 0 0;

1 3 0 0;

0 0 4 0; ];

Sparse matrix :稀疏矩阵

稀疏矩阵的转换:

给出一个矩阵A,我们可以使用MATLAB函数sparse把它转换成稀疏矩阵,该函数语法为:

S=sparse(A)

例如:

>> A=[ 0 0 0 5;

0 2 0 0;

1 3 0 0;

0 0 4 0; ];

>> S=sparse(A)

S=

(3,1) 1

(2,2) 2

(3,2) 3

(4,3) 4

(1,4) 5

括号内的坐标是元素在矩阵中位置索引,坐标按照元素值排列

稀疏矩阵的获得:

函数sparse()的更常用的用法是用来产生稀疏矩阵,具体语法如下:

S=vsparse(r,c,s,m,n)

其中r和c是我们希望产生的稀疏矩阵的矩阵中非零元素的行和列索引向量。参数s是一个向量,它包含索引对(r,c)对应的数值,m和n是结果矩阵的行维数和列维数。例如:

>> s=sparse( [3 2 3 4 1 ],[ 1 2 2 3 4 ],[1 2 3 4 5],4,4)

s =

(3,1) 1

(2,2) 2

(3,2) 3

(4,3) 4

(1,4) 5

如果要获得完成的矩阵,可以使用full()函数,函数语法:

A=full(s)

例如:

>> a=full(s)

a =

0 0 0 5

0 2 0 0

1 3 0 0

0 0 4 0

以上就是关于matlab程序调试没问题,计算时显示:错误使用fprintf,没有为稀疏输入定义函数 是什么意思全部的内容,包括:matlab程序调试没问题,计算时显示:错误使用fprintf,没有为稀疏输入定义函数 是什么意思、MATLAB中如何将uniit32的大型矩阵转换成稀疏矩阵、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/10071356.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存