matlab - 如何在 matlab 中根据文本文件中的索引和值重新创建矩阵

标签 matlab file-io sparse-matrix

我希望在 matlab 中执行以下操作: -我有一个格式如下的文本文件:1 1 0.242 1 2 0.332 ... 75 74 0.485 75 75 0.726 - 第一列是矩阵的第 i 个索引的列表,第二列是矩阵的第 j 个索引,第三列是特定索引 (i,j) 处的值。简而言之,我有一个 75x75 矩阵,其值位于文本文件中。 -我希望读入这些数据并在 matlab 中重新创建矩阵,以便我可以对其进行操作。 有什么建议吗?

最佳答案

您描述的是一个存储稀疏矩阵(以元组格式)的文件。稀疏矩阵是大多数元素为 0 的矩阵,因此为了节省空间,您只存储非零元素。 Matlab 有一个内置的稀疏矩阵对象。您可以直接加载文件:

>> load matrix.mtl;
>> A = spconvert(matrix);

参见:http://bebop.cs.berkeley.edu/smc/formats/matlab.html

您可能需要注意的另一件事是稀疏函数,它接受三个向量并将它们转换为稀疏矩阵。

可以使用 full(A) 将稀疏矩阵转换为密集矩阵(即二维数组,这就是大多数人所说的矩阵)

关于matlab - 如何在 matlab 中根据文本文件中的索引和值重新创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6086430/

相关文章:

matlab - 使用 CUDA 在 GPU 上并行克罗内克张量积

matlab - 有效地将稀疏矩阵转换为元胞数组

scipy - SciPy 中由函数定义的稀疏矩阵

matlab - 删除Matlab中两个特定数据点之间的线

matlab - matlab 图中的自定义 x Axis 值

c++ - 将 Matlab 与 C++ 链接时出错

Windows 上的 C 文件输入/输出

c - 为什么当我也打印行数时,行数显示为 0,但当它只是行数时却工作正常

编译器随机执行if语句

tensorflow - 当我从修剪中得到稀疏矩阵时,如何加快 TensorFlow 中的推理速度?