小编bm1*_*563的帖子

标识以逗号分隔的字符串的新添加项

我有一个包含50行逗号分隔数据的Excel电子表格。逗号分隔数据中包含的特征数量从下到上递增,即第50行(最后一行)始终具有最少的分隔符,而第1行(第一行)始终具有最多的分隔符。功能部件的数量随机增加,每个功能部件可以是唯一的或重复的。可以在每一行的字符串中添加多个或单个功能。将要素随机放置在前一行的逗号分隔字符串中,即可以将它们放置在上一行中字符串的中间,或者放置在上一字符串的开头或结尾。如果一行中添加了多个,则它们可能不会放在一起。例如:

1  fish,pig,cat,dog,fish,mouse,fish,cow
2  pig,cat,dog,fish,mouse,fish
3  pig,cat,dog,fish,mouse
4  pig,cat,dog,mouse
5  pig,cat,dog,mouse
6  cat,dog,mouse
7  cat,mouse
8  cat,mouse
9  cat 
10 
Run Code Online (Sandbox Code Playgroud)

我需要提取已添加到每行上以逗号分隔的字符串中的功能,最好使用UDF。上面示例的期望输出为:

1  fish,cow
2  fish
3  fish
4  
5  pig
6  dog
7  
8  mouse
9  cat
10 
Run Code Online (Sandbox Code Playgroud)

使用UDF比较相邻行并提取相邻列的两行之间的唯一值时,我取得了一些成功(即,如果B4中的第4行和第5行使用了UDF,则B4将为空白;但是,如果UDF用于B3中的第3行和第4行,B3的值为“ fish”)。但是,这会导致问题,因为某些功能是重复的(请参见上例中的第1行和第2行)。当将重复项添加到字符串时,这导致UDF返回空值。

我在堆栈交换中发现的这些(非常细微调整的)UDF取得了最大的成功,特别是前者:

Function NotThere(BaseText As String, TestText As String) As String
  Dim V As Variant, BaseWords() As String
  NotThere = "" & TestText & ","
  For Each V In Split(BaseText, ",")
    NotThere = Replace(NotThere, V & ",", ",")
  Next …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

5
推荐指数
1
解决办法
102
查看次数

在numpy中找到两个多边形之间的距离

我有两个多边形P和Q,其中多边形的外部线性环由两个封闭的点集(存储为numpy数组)定义,它们以逆时针方向连接。P和Q的格式如下:

P['x_coords'] = [299398.56 299402.16 299410.25 299419.7  299434.97 299443.75 299454.1 299465.3  299477.   299488.25 299496.8  299499.5  299501.28 299504. 299511.62 299520.62 299527.8  299530.06 299530.06 299525.12 299520.2 299513.88 299508.5  299500.84 299487.34 299474.78 299458.6  299444.66 299429.8  299415.4  299404.84 299399.47 299398.56 299398.56] 
P['y_coords'] = [822975.2  822989.56 823001.25 823005.3  823006.7  823005.06 823001.06 822993.4  822977.2  822961.   822943.94 822933.6  822925.06 822919.7 822916.94 822912.94 822906.6  822897.6  822886.8  822869.75 822860.75 822855.8  822855.4  822857.2  822863.44 822866.6  822870.6  822876.94 822886.8  822903.   822920.3  822937.44 822954.94 822975.2]

Q['x_coords'] = [292316.94 292317.94 292319.44 292322.47 292327.47 …
Run Code Online (Sandbox Code Playgroud)

python geometry numpy

5
推荐指数
1
解决办法
168
查看次数

回调变换反馈以防止 getBufferSubData 图形管道停顿

当我使用 getBufferSubData 从 Chrome 中的转换缓冲区读取顶点数据到 Float32Array 时,我收到警告“性能警告:READ-usage 缓冲区在没有等待栅栏的情况下被读回。这导致了图形管道停顿。 ”。我的理解是,一旦调用 getBufferSubData,GPU 就会尝试将顶点数据写回 CPU,这可能是在着色器完成之前。我认为如果我能阻止这种情况,我也许能够加快我的应用程序的速度,并且我认为最好的方法是使用回调。澄清一下,返回的数据是正确的;我希望加快我的申请速度并更好地了解正在发生的事情。

我尝试使用 fenceSync 实现回调,类似于此答案。这应该在执行 getBufferSubData 之前检查 GPU 是否已完成执行当前命令(包括变换反馈)。这是我的代码。

(function () {
    'use strict';

    const createRandomF32Array = (arrSize) => {
        return Float32Array.from({length: arrSize}, () => Math.floor(Math.random() * 1000));
    };

    const createGlContext = () => {
        const canvas = document.createElement("canvas");
        const gl = canvas.getContext("webgl2");
        canvas.id = 'webgl_canvas';
        document.body.appendChild(canvas);
        if (gl === null) {
            alert("Unable to initialize WebGL. Your browser or machine may not support it.");
            return;
          }
        return …
Run Code Online (Sandbox Code Playgroud)

webgl webgl2

5
推荐指数
1
解决办法
1081
查看次数

标签 统计

excel ×1

excel-vba ×1

geometry ×1

numpy ×1

python ×1

vba ×1

webgl ×1

webgl2 ×1