我有一个5列和668行的数据集。我需要在Ampl中使用这些数据,并且需要一种特殊的格式,如下所示:
1 3 4 5 7
5 4 3 2 1
4 5 6 4 3
4 5 3 4 2
[*,*,1]: 1 2 3 4:=
4 3 2 1 5
4 5 6 7 4
3 4 5 6 7
3 4 2 3 1
[*,*,2]: 1 2 3 4:=
4 5 6 2
4 3 2 1
4 5 3 2
1 2 7 1
[*,*,3]: 1 2 3 4:=
.
.
.
换句话说,我必须先打印4行,然后再打印[*,*, i]: 1 2 3 4:=
4行和该语句,依此类推。应该通过一个简单的for循环来完成,但是由于我不使用MATLAB,因此我不知道该怎么做。
答案 0 :(得分:1)
您可以将disp
的字符串与for
循环组合在一起。
num2str
用于将数字转换为字符串。
例如,包含100行的矩阵。
D = rand(100,4);
for i = 1 : 4 : size( D,1 )
disp( D( i : i + 3,: ) )
disp(['[*,*,' num2str((i + 3)/4) ']: 1 2 3 4:='])
end