将值分配给矩阵的第三列,以获取特定的第一列和第二列值

时间:2015-06-03 07:17:13

标签: matlab matrix

矩阵A如下所示:

1 1.1 0
2 1.2 0
3 1.3 0
4 1.1 0
5 1.5 0 
1 1.0 0
2 0.9 0
3 0.3 0
4 0.1 0
5 0.4 0

第一列代表X,而第二列代表Y和第三Z。如您所见,x值每5个样本重复一次。 并且Z列全部为零,我做了一些计算,我想在特定XY值处添加值。我该怎么办?

2 个答案:

答案 0 :(得分:1)

例如,如果您要为z = 5x = 4插入y = 0.1值,

你可以做到

maskRow = A(:,1) == 4 & A(:,2) == 0.1;
A(maskRow,3) = 5

说明:

在代码的第一行,我们发现矩阵的哪些行满足条件。即将x与第一列进行比较,将Y与第二列矩阵A进行比较。 maskRow logicals true false对应满足上述条件的行,z对应其余行。

在代码的第二行,我们将rowMask值分配给我们从'mimeTypes' => array('image/jpeg', 'image/png','image/jpg','application/vnd.ms-excel','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/docx','application/pdf','text/plain','application/msword','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'),

获取的特定行的第三列

答案 1 :(得分:1)

手动检查每列的替代方法(如果您有很多列可能很有用)是使用ismember

maskRow = ismember(A(:,1:2), [4, 0.1], 'rows')

此方法的另一个优点是您可以在onces上搜索多个不同的匹配项:

maskRow = ismember(A(:,1:2), [4, 0.1; 2, 1.2], 'rows')