Conversion String to Integer with Positive or Negative

1 Ansicht (letzte 30 Tage)
Amanda
Amanda am 19 Aug. 2012
I have a 1 X 20 column vector of string data in a file name A.txt.
%Input in A.txt:
60N
61N
50S
51S
Objective: to read the column of data as integers and represent N as positive and S as negative.
So the output would be:
60
61
-50
-51
I have researched other posts, apply str2num double. I'm totally stuck.
Thanks,
Amanda

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 19 Aug. 2012
Bearbeitet: Azzi Abdelmalek am 19 Aug. 2012
c=char('60N', '61N', '50S', '51S')
cc=[c(:,end) c(:,1:end-1)]
result=cellfun (@(x) regexprep(x,'N','-'),cellstr(cc),'uni',false)
result=cellfun (@(x) regexprep(x,'S',''),result,'uni',false)
result=str2num(char(result))

Weitere Antworten (1)

Oleg Komarov
Oleg Komarov am 19 Aug. 2012
% Import data
fid = fopen('C:\Users\Oleg\Desktop\test.txt');
out = textscan(fid, '%2f%s','Delimiter','');
fclose(fid);
% Recognize positive and negative
data = out{1} .* (strcmp('N',out{2})*2-1);

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by