如何在 Octave 中导出带有索引的矩阵?
How to export a matrix with indices in Octave?
假设我有一个矩阵
a = [1, 2, 3; 11, 12, 13; 21, 22, 23]
如何通过以下方式保存到txt或csv文件?
行、列、值
1 1 1
1 2 2
1 3 3
2 1 11
2 2 12
2 3 13
3 1 21
3 2 22
3 3 23
可以使用dlmwrite
命令,使用space(即' '
)作为分隔符,例如:
octave:1> a = [1, 2, 3; 11, 12, 13; 21, 22, 23]
a =
1 2 3
11 12 13
21 22 23
octave:2> [Cols, Rows] = ndgrid( 1 : size(a, 2), 1: size(a, 1) );
octave:3> M = [ Rows(:), Cols(:), a'(:) ];
octave:4> dlmwrite('out.ssv', M, ' ');
PS。大概你的矩阵中有错字,打算写 a = [1, 2, 3; 11, 12, 13; 21, 22, 23]
第 1 列和第 2 列将始终具有相同的模式,而第 3 列只是行的堆叠列,因此以下内容应该有效。我一步一步地把它拆开,但我相信它可以收紧成更少的行:
>> a = [1, 2, 3; 11, 12, 13; 21, 22, 23];
>> [r, c] = size(a);
r = 3
c = 3
>> col1 = repelem([1:r]',c)
col1 =
1
1
1
2
2
2
3
3
3
>> col2 = repmat([1:c]',r,1)
col2 =
1
2
3
1
2
3
1
2
3
>> col3 = a'(:)
col3 =
1
2
3
11
12
13
21
22
23
>> output = [col1, col2, col3]
output =
1 1 1
1 2 2
1 3 3
2 1 11
2 2 12
2 3 13
3 1 21
3 2 22
3 3 23
然后有几个关于如何保存它的选项。最简单的可能是:
>> dlmwrite ('filename.csv', output)
假设我有一个矩阵
a = [1, 2, 3; 11, 12, 13; 21, 22, 23]
如何通过以下方式保存到txt或csv文件?
行、列、值
1 1 1
1 2 2
1 3 3
2 1 11
2 2 12
2 3 13
3 1 21
3 2 22
3 3 23
可以使用dlmwrite
命令,使用space(即' '
)作为分隔符,例如:
octave:1> a = [1, 2, 3; 11, 12, 13; 21, 22, 23]
a =
1 2 3
11 12 13
21 22 23
octave:2> [Cols, Rows] = ndgrid( 1 : size(a, 2), 1: size(a, 1) );
octave:3> M = [ Rows(:), Cols(:), a'(:) ];
octave:4> dlmwrite('out.ssv', M, ' ');
PS。大概你的矩阵中有错字,打算写 a = [1, 2, 3; 11, 12, 13; 21, 22, 23]
第 1 列和第 2 列将始终具有相同的模式,而第 3 列只是行的堆叠列,因此以下内容应该有效。我一步一步地把它拆开,但我相信它可以收紧成更少的行:
>> a = [1, 2, 3; 11, 12, 13; 21, 22, 23];
>> [r, c] = size(a);
r = 3
c = 3
>> col1 = repelem([1:r]',c)
col1 =
1
1
1
2
2
2
3
3
3
>> col2 = repmat([1:c]',r,1)
col2 =
1
2
3
1
2
3
1
2
3
>> col3 = a'(:)
col3 =
1
2
3
11
12
13
21
22
23
>> output = [col1, col2, col3]
output =
1 1 1
1 2 2
1 3 3
2 1 11
2 2 12
2 3 13
3 1 21
3 2 22
3 3 23
然后有几个关于如何保存它的选项。最简单的可能是:
>> dlmwrite ('filename.csv', output)