Merge numeric values of 2 columns into 1
조회 수: 5 (최근 30일)
이전 댓글 표시
Hello,
I am importing data from COMSOL Multiphysics to Matlab, and the data is imported wrong. Some values are divided into different cells when they should not, and the second cell contains the information for the next value. For example: the columns [-4.83853986927724E-7, -5.796128574671958E-7] show in 2 different columns as [-4.838539869 , 27724E-7 -5.796128574671958E-7]
I would like to divide the second column (withouth changing the value 27724E-7 to 2.7724E-3 - so maybe using strings?) and join such value to the previous column. Does anybody know how?
Thanks!
댓글 수: 2
답변 (1개)
Robert U
2020년 6월 16일
Hi Andrea Boa,
probably your import function is not correct regarding either format or delimiter, or both. The following function converts the given data into a double-matrix. I hope it serves your needs.
function [dataOut] = importComsolTable(strFileName)
fID = fopen(strFileName);
dataIn{1,1} = fgetl(fID);
while ischar(dataIn{end})
dataIn{end+1,1} = fgetl(fID);
end
dataIn = dataIn(1:end-1,1);
fclose(fID);
Data = dataIn(cellfun(@isempty,regexp(dataIn,'%%*')));
Data = cellfun(@(strIn)strsplit(strIn,char(9))',Data,'UniformOutput',false);
dataOut = str2double([Data{:}]');
end
Function test call:
Test = importComsolTable('Emy.txt');
Kind regards,
Robert
댓글 수: 3
Robert U
2020년 6월 16일
function [dataOut] = importComsolTable(strFileName)
fID = fopen(strFileName);
dataIn{1,1} = fgetl(fID);
while ischar(dataIn{end})
dataIn{end+1,1} = fgetl(fID);
end
dataIn = dataIn(1:end-1,1);
fclose(fID);
Data = dataIn(cellfun(@isempty,regexp(dataIn,'%%*')));
Data = cellfun(@(strIn) regexprep(strIn,'\t(?=\d*[E]([+]|[-])\d+)',''),Data,'UniformOutput',false);
Data = cellfun(@(strIn) regexprep(strIn,sprintf('%s{3,4}',char(32)),'\t'),Data,'UniformOutput',false);
Data = cellfun(@(strIn)strsplit(strIn,char(9))',Data,'UniformOutput',false);
dataOut = str2double([Data{:}]');
end
참고 항목
카테고리
Help Center 및 File Exchange에서 String Parsing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!