You can't use the Color Editor with those profiles, though ...
you can translate matrix + trc profile into LUT based though where the LUT will be doing the same color transform and then you can use color editor...
I am totally not Matlab expert, but something like this :
Pmat = iccread('SonyA7RM2-CC24(M+TRC^TF).icm'); % profile after rawdigger + makeinputicc/argyll
Plut = iccread('xxx.icc'); % using a template, some OEM profile from C1 distribution, to fill with our data and the rest will be from OEM profile - put the proper name instead of xxx.icc
Plut.AToB0.InputTables = {Pmat.MatTRC.RedTRC, Pmat.MatTRC.GreenTRC, Pmat.MatTRC.BlueTRC};
Plut.AToB0.OutputTables = {[0 65535], [0 65535], [0 65535]}; % linear curve
Plut.AToB0.PreMatrix = [[1,0,0];[0,1,0];[0,0,1];[0,0,0]]'; % last column = 0,0,0
m_rgb2xyz = [ Pmat.MatTRC.BlueColorant; Pmat.MatTRC.GreenColorant; Pmat.MatTRC.RedColorant ]; % 3x3 in this order = BlueColorant is the top row, RedColorant is the bottom row
n_3Dlut_Size = 33; % C1 uses something like 33x33x33 LUT
m_3Dlut_Points = linspace(0, 32767, n_3Dlut_Size); % get even spacing for points from 0 to __32767__ (not 65535!) for cieXYZ luts
for i = 1:n_3Dlut_Size
for j = 1:n_3Dlut_Size
for k = 1:n_3Dlut_Size
m_RGB2XYZ_3Dlut(i,j,k,:) = round( [ m_3Dlut_Points(i), m_3Dlut_Points(j), m_3Dlut_Points(k) ] * m_rgb2xyz );
end;
end;
end;
Plut.AToB0.CLUT = m_RGB2XYZ_3Dlut; % replace 3Dlut converting RGB to cieLAB with 3Dlut converting RGB to cieXYZ
Plut.Header.ConnectionSpace = 'XYZ';
Plut.MediaWhitePoint = Pmat.MediaWhitePoint;
Plut.MediaBlackPoint = Pmat.MediaBlackPoint;
iccwrite(Plut, 'SonyA7RM2-CC24(3Dlut^XYZ).icm');