转换为积极或否定的整数

Min*_*ist 3 string matlab

在MATLAB中,我在文件名A.txt中有一个1 X 20列的字符串数据向量.

%Input in A.txt:
60N
61N
50S
51S
Run Code Online (Sandbox Code Playgroud)

目标:以整数读取数据列并表示N.

积极,S积极.

所以输出将是:

 60
 61
-50
-51
Run Code Online (Sandbox Code Playgroud)

我已经研究了其他帖子,应用str2num double.我完全陷入了困境.

Eit*_*n T 6

假设您的数据就像您的示例一样,您可以尝试这样做:

[nums, directions] = textread('test.txt', '%d%s'); %# Read data from file
signs = ones(size(directions));                    %# Assume signs are positive
signs(strcmp(directions, 'S')) = -1;               %# Replace 'S' with negatives
result = nums(:) .* signs(:)                       %# Calculate result
Run Code Online (Sandbox Code Playgroud)