以渐进编号转换单元格文本

时间:2015-04-21 15:47:30

标签: sql matlab postgresql

我在PostgreSQL环境中编写了这个SQL:

SELECT
    ST_X("Position4326") AS lon,
    ST_Y("Position4326") AS lat,
    "Values"[4] AS ppe,
    "Values"[5] AS speed,
    "Date" AS "timestamp",
    "SourceId" AS smartphone,
    "Track" as session
FROM
    "SingleData"
WHERE
    "OsmLineId" = 44792088
AND
    array_length("Values", 1) > 4
AND
    "Values"[5] > 0
ORDER BY smartphone, session;

现在我已经在Matlab中导入了结果,我有六个向量和一个单元格(因为来自UUID的文本在单元格中转换)全部为5710x1大小。

现在,我希望转换单元格中的文本,使用渐进式数字,例如1,2,3 ...为每个不同的会话代码。

在Excel中,使用FIND.VERT(obj, matrix, col)很容易,但我不知道它是如何在Matlab中完成的。

现在我有一个包含很多代码的大单元格,如:

ff95465f-0593-43cb-b400-7d32942023e1

我希望在第一次出现

的数字数组中转换此单元格

ff95465f-0593-43cb-b400-7d32942023e1 - > 1

等等。当出现不同的代码时,你会输入2,依此类推。

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了。

我将单个session代码放在第二个单元格C中。

此时,使用for循环,我获得:

%% Converting of the UUIDs into integer
C = unique(session);
N = length(session);

session2 = zeros(N, 1);
for i = 1:N
    session2(i) = find(strcmp(C, session(i)));
end

感谢所有人!