MATLAB手动错误?

Mikhail_Sam

我阅读了有关MATLAB中正确使用内存的有趣文章。这里是:官方网站上的链接在这里我看到示例:

如果数据包含许多零,请考虑使用稀疏数组,该数组仅存储非零元素。以下示例比较了存储主要为零的数组所需的空间:

A = diag(1e3,1e3);    % Full matrix with ones on the diagonal
As = sparse(A)        % Sparse matrix with only nonzero elements

我试图在我的代码中实现它,并发现有趣的时刻:A = diag(1e3,1e3)不创建对角线上有矩阵的矩阵!它仅使用一个非零元素创建零矩阵:

clear A
A = diag(1e3,1e3);
find(A);
ans =
     1001001

A(1001001)
ans =
        1000

好的。我阅读了有关diag帮助中的功能的信息,并看到以下内容:

D = diag(v)返回一个平方对角矩阵,其中向量v的元素位于主对角线上。

好的!因此,如果v由1个元素组成,它实际上不会创建对角矩阵帮助时出错吗?但。还有一个问题:为什么它会这样工作?

diag(5,5)
ans =
     0     0     0     0     0     5
     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0

我希望得到5值(1,1)或(5,5)的矩阵5x5 为什么创建6x6矩阵,为什么5是(1,6)元素?


不久前,他们修复了文档: 在此处输入图片说明

用户名

手册:diag您正在使用diag的第二重载版本:

D = diag(v,k)将向量v的元素放在第k个对角线上。k = 0表示主对角线,k> 0在主对角线上方,k <0在主对角线下方。

因此,您的命令A = diag(5,5)将构造一个矩阵,其中主对角线上方第5个对角线的对角元素将等于矢量[5]。因此,只有A(1,6)具有值的结果值。

如果要在对角线上有一个1e3x1e3矩阵,请尝试

A = diag(ones(1,1e3));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

手动注入错误以形成

来自分类Dev

手动分页错误-Laravel 5.0

来自分类Dev

手动触发404错误

来自分类Dev

Laravel手动分页错误

来自分类Dev

手动设置Flutter验证错误

来自分类Dev

Laravel手动分页错误

来自分类Dev

在MATLAB中优化手动编码的k均值?

来自分类Dev

如何手动计算MATLAB linspace函数

来自分类Dev

MATLAB手动绘制具有固定点的线?

来自分类Dev

使用MATLAB手动选择图中的峰

来自分类Dev

如何手动计算MATLAB linspace函数

来自分类Dev

使用MATLAB手动选择图中的峰

来自分类Dev

微小的“手动”创建的ELF产生了细分错误

来自分类Dev

手动更新for循环迭代器是否是错误的做法?

来自分类Dev

手动执行exe时发生执行阶段错误

来自分类Dev

手动添加Segment iOS框架时出现错误

来自分类Dev

如何手动删除格式错误的软件包?

来自分类Dev

如何使用FutureBuilder手动触发AsyncSnapshot错误

来自分类Dev

如何手动删除格式错误的软件包?

来自分类Dev

手动隐藏后的自举模式错误

来自分类Dev

捕获错误并要求以BASH手动输入

来自分类Dev

HTML5从javascript手动设置输入错误

来自分类Dev

使用手动下载的依赖项的POM错误

来自分类Dev

手动添加Segment iOS框架时出现错误

来自分类Dev

手动调用PlayFramework自定义错误页面

来自分类Dev

手动提交symfony表单会导致CSRF错误

来自分类Dev

如何“手动修复此包”(能力错误)?

来自分类Dev

手动 json_encode 语法错误

来自分类Dev

手动触发数据库/系统错误