我想在 Octave 中生成一个已知维度的矩阵。问题是我不想用零初始化矩阵。矩阵仅包含 0 或 1,但未分配任何值的元素(单元格)必须保留为空。计划在“协作过滤”算法中使用这样的矩阵。
我对 Ocatve 和“协作过滤”算法都很陌生。尝试在网上寻找解决方案,但没有成功。网上的关键字空矩阵是指零维数组或以“”为值的字符矩阵。
最佳答案
数值数组不能保存空值。通常在这种情况下,人们会使用 NaN
作为占位符值。
%// Initialize a 3D matrix of NaN values
data = nan(2, 3, 4);
size(data)
%// 2 3 4
这样就可以轻松区分占位符值和真实数据。您可以使用 isnan
检测它们。
创建空值数组的唯一方法(由于性能受到影响,强烈建议不要这样做)是使用元胞数组。
data = cell(2, 3, 4);
关于matlab - 生成已知维度的空矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37230551/