如何从矩阵中选择行

时间:2015-05-15 14:03:27

标签: matlab matrix mat

我是matlab的初学者。目前我正在使用

保存文件
eval(['save(''results/loc_', num2str(location) ,''',''values'')']);

我有54个地点。因此,在这种情况下,我将在命名为' results'的新文件夹中保存54个名为loc_1,loc_2 ... loc_54的文件。每个文件的大小为15x7。在这种情况下,列数将始终保持不变。但行数会改变。如果我只进行一次试验,那么' loc_1'只给出3x7的值。如果我进行2次试验,那么' loc_1'将给出6x7值,依此类推。在我的情况下,我想采取'试用'作为变量,其值为5.因此,名为loc_1,loc_2,..,loc_54的每个文件将为我提供15x7值。

现在我想从loc_1中分离前5行(和所有7列),需要将它们保存在3个不同的文件中,每个文件的大小为5x7。同样,我将保存所有loc_numstr(位置)文件(总共54个文件)并将它们分开。然后我会有3组54个文件,每个大小为5x7。在这种情况下,我正在进行5次试验,所以我将每个文件的大小分成5x7。同样,对于4次试验,我需要考虑4x7等等。

任何形式的帮助将不胜感激。感谢。

我想我觉得它有点复杂。你能解释一下这个例子吗?

我想问一下我是否有一个矩阵例如:          a = [1 2 3; 1 3 4; 4 5 7; 9 10 12; 13 16 18; 22 26 29]

以及如何获取前2行并将它们保存在另一个文件中,接下来的两行并将它们保存在另一个文件和接下来的两行中并将它们保存在另一个文件中?

例如,我想存储b = [1 2 3; 1 3 4],c = [4 5 7; 9 10 12]和d = [13 16 18; 22 26 29]

感谢

1 个答案:

答案 0 :(得分:0)

对于您的示例,您可以使用数组切片,

a=[1 2 3 ; 1 3 4 ; 4 5 7 ; 9 10 12 ; 13 16 18 ; 22 26 29]
for n = 1:3
   %Indices for matrix section
   j = 2*n; i = j-1;
   %Get matrix section to save
   b = a(i:j,:)
   save(['results/loc_',num2str(n)], 'b')
end

我不确定保存是你想要的 - 这会保存matlab工作区变量。您是否想要编写这些数字以便其他程序可以阅读?