matlab - 生成已知维度的空矩阵

标签 matlab matrix octave

我想在 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/

相关文章:

matlab - 如何在 MATLAB 中将图像分成 block ?

arrays - 如何在Matlab中创建一个数组并同时运行一个函数?

matrix - 使用 awk 计算大文件的对称矩阵

python-3.x - 使用 Octave 与 Python 计算极对时的不同结果

matlab - 使用patch绘制简单矩形时如何显示轴轮廓?

matlab - 时间序列预测的延迟问题

matlab - 当一维未知时在循环之前定义一个矩阵

python - 有没有办法使用 numpy 广播来 NOT 任意 M x N 矩阵?

python - numpy 数组上的多维矩阵乘法

for-loop - 用 Octave 编写 'for' 的更简单方法