내 솔루션은에 old another에서 적응 비슷한 질문 (단순히 트랜스 행/열) :
>> c'
ans =
'A' 'B' 'C' 'D'
[ 1] [ 1] [1] [NaN]
[ 2] [ 2] [2] [NaN]
[NaN] [NaN] [3] [ 3]
[NaN] [NaN] [4] [ 4]
: 여기
%# input cell arrays
a = {'A', 'B', 'C' ; 1, 1, 1; 2, 2, 2 };
b = {'C', 'D'; 3, 3; 4, 4};
%# transpose rows/columns
a = a'; b = b';
%# get all key values, and convert them to indices starting at 1
[allKeys,~,ind] = unique([a(:,1);b(:,1)]);
indA = ind(1:size(a,1));
indB = ind(size(a,1)+1:end);
%# merge the two datasets (key,value1,value2)
c = cell(numel(allKeys), size(a,2)+size(b,2)-1);
c(:) = {NaN}; %# fill with NaNs
c(:,1) = allKeys; %# available keys from both
c(indA,2:size(a,2)) = a(:,2:end); %# insert 1st dataset values
c(indB,size(a,2)+1:end) = b(:,2:end); %# insert 2nd dataset values
는 (원래의 방향과 일치하는 전치) 결과입니다
또한 여기에 통계 도구 상자에서 DATASET 클래스를 사용하여 솔루션입니다 :
aa = dataset([cell2mat(a(2:end,:)) a(1,:)])
bb = dataset([cell2mat(b(2:end,:)) b(1,:)])
cc = join(aa,bb, 'Keys',{'C'}, 'type','fullouter', 'MergeKeys',true)
cc =
A B C D
1 1 1 NaN
2 2 2 NaN
NaN NaN 3 3
NaN NaN 4 4
에 당신이에서 첫 번째 두 개의 열과 C에서 다른 사람되고 싶어 ? 하지만 첫 번째 행만 혼합하면됩니까? – petrichor
안녕하세요, Emrea가 아래에 언급했듯이, 첫 번째 행을 기반으로 셀 배열에 참여하려고합니다. 감사. – Andrew
이 페이지 확인 : [열 또는 행 레이블을 기반으로 두 개의 행렬을 병합 할 수있는 MATLAB의 함수가 있습니까?] (http://www.mathworks.com/support/solutions/en/data/1-143J0O/index. html? product = ML & solution = 1-143J0O) – Amro