您可以dlmwrite
用于写入分隔的 ASCII 数据:
>> filename = "weights.txt";
>> weights = rand(3,3);
>> dlmwrite(filename, weights)
>> type weights.txt
0.16218,0.52853,0.26297
0.79428,0.16565,0.65408
0.31122,0.60198,0.68921
默认情况下,这是逗号分隔的,但您可以将自己的分隔符作为第三个参数传递。
编辑:
好吧,MATLAB 将允许您使用 保存任何维度的数组dlmwrite
,并且您可以使用 读回数据dlmread
。但是,正如 carandraug 指出的那样,ASCII 表示最多是 2D 的(MATLAB 会展平额外的维度)。如果您还将导出矩阵的形状保存在某处,您仍然可以恢复此信息:
>> shape = "shape.txt";
>> weights = rand(3,3,3);
>> dlmwrite(filename, weights, 'precision', 17)
>> dlmwrite(shape, size(weights))
>> M = reshape(dlmread(filename), dlmread(shape));
>> all(M(:) == weights(:))
ans =
1
当然,与仅使用 MATLAB 的原生save weights; load weights
.