循环使用Matlab数据以在不同的列中表现出色

时间:2012-07-21 00:38:14

标签: excel matlab

我想知道如何将这些获得的值从Simulink重新排列为更合适的格式,以便可以轻松完成绘图。

从simulink获得的原始数据如下所示:

val(:,:,1)=

1.2500
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000
2.5000

val(:,:,2)=

1.2500
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000
7.5000

但是,我希望的格式如下所示:

1.2500      1.2500
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000 
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000
2.5000      7.5000

我已尝试循环代码,如下所示:

Index_c = 10;

表示c = 1:Index_c

y = simout.signals.values(:,:,c) %Simulink data

xlswrite('testdata.xls', y, ['A' num2str(c)])

但这是将所有内容复制到不同的工作表,我想要的只是将它们复制到不同的列。有没有人可以帮我这个?将数据复制到excel或Matlab中的新变量并不重要。谢谢。

2 个答案:

答案 0 :(得分:0)

我认为squeeze可以解决这个问题:

squeeze(val)

它删除了单身尺寸;因此,如果帖子中的那些行是val中唯一的行,则结果应为Nx2矩阵。

答案 1 :(得分:0)

我认为这会重塑数据:

>> reshaped_val = reshape(val, [], 2)