我最终需要的是输入一个2列矩阵,通过一系列条件运行它并输出2个原始列加上另外3个。
我的初始数据矩阵我根据时间(第二列)分成几个数组,并继续在每个数组上单独应用我的条件:
A = arrayfun(@(x) M(M(:, 2) == x, :), unique(M(:,2)), 'uniformoutput', false);
n = numel(A);
k = 0;
for i = 1:n % for each # of arrays
matrix = A{i}; % array i
dat = size(matrix);
length = dat(1,1); % length of i array
adductName = zeros(length, 1); % preallocate columns
actualMass = zeros(length, 1);
adductMass = zeros(length, 1);
%... continued with conditions here's an example of one
for r = 1:length % for the length of array i
mass = matrix(1,r);
M = mass-1;
k=k+1;
if any(M == matrix(:, 1)) % if any M matches rest of column 1 in array
adductName(k) = 'M';
actualMass(k) = M;
adductMass(k) = mass;
else
adductName(k) = 'None';
actualMass(k) = 0;
adductMass(k) = 0;
adductName,actualMass和adductMass是我需要在输出中添加的三个附加列
我的问题是,如何将我的所有数组A {i}以及我的其他三列重新组合成一个数据矩阵来输出?
答案 0 :(得分:0)
您可以使用[ ]
运算符或显式调用horzcat
或vertcat
以不同方式连接矩阵。有关详细信息,请参阅Creating and Concatenating Matrices文档部分。