问题列表 - 第318017页

MATLAB 中的匿名函数和函数句柄有什么区别?

我听说这两个术语,匿名函数和函数句柄被用来指代类似f = @(x) x.^2MATLAB 中的东西。但后来我也听说这些术语含义不同。这两个术语有何不同?

matlab lambda function handle anonymous-function

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

是否有类似于 std::bitset 的非拥有引用来为其他容器中的数据提供按位操作和计数?

我正在尝试为 ORB 功能实现 C++17 可移植且高效的汉明距离函数,希望在为 x86 和 ARM 编译时自动使用 SIMD。

有问题std::bitset

std::bitset<N>提供了按位运算和计数的标准方式,并且它也优于__builtin_popcount. cv::Mat然而,它是一种拥有数据的容器类型,并且不容易从由 计算的存储的 256 位向量转换而来cv::ORB::detectAndCompute。

该线程要求转换cv::Mat为std::bitset<256>. 我认为memcpy它的答案不正确,因为我没有std::bitset在https://en.cppreference.com/w/cpp/utility/bitset中找到内存布局。此外,std::bitset构造函数不支持初始化超过位sizeof(unsigned long long)。

我的实施有问题

为了避免复制,我当前的实现使用类似 span 的类:

struct ORB_view {
  inline static constexpr int length = 256 / sizeof(uint32_t) / 8;
  const uint32_t* data;
};
Run Code Online (Sandbox Code Playgroud)

但是,这不能直接使用按位运算和 popcount,并且会导致在实现中出现显式的 SIMD 指令,我希望通过使用std::bitset<N>::count().

我的期望是什么

因此,在这种情况下,提供按位运算和计数的非拥有引用将非常有帮助。所需的功能是:

  • 没有数据副本,
  • 固定长度为std::bitset
  • 按位异或运算和 popcount
  • 没有针对 ARM …

c++ simd bitwise-operators std-bitset c++17

4
推荐指数
1
解决办法
107
查看次数

在 R 中将列转换为宽格式的单独列

我正在尝试将“水果”列转换为宽格式的单独列(“苹果”和“香蕉”)。

  Gender  AgeGroup              EAT           FRUITS 
1 Female 30yr_39yr              Yes             Apple           
2 Female 20yr_29yr              Yes             Apple              
3 Female 70yr_80yr              Yes             Apple             
4   Male 50yr_59yr              Yes             Banana              
5 Female 40yr_49yr              Yes             Apple                  
6 Female 70yr_80yr              Yes             Apple              
Run Code Online (Sandbox Code Playgroud)

如何将 FRUITS 列转换为:

  Gender AgeGroup       EAT  Apple      Banana 
1 Female 30yr_39yr      Yes  TRUE      FALSE
2 Female 20yr_29yr      Yes  TRUE      FALSE
3 Female 70yr_80yr      Yes  TRUE      FALSE
4   Male 50yr_59yr      Yes  FALSE     TRUE
5 Female 40yr_49yr      Yes  TRUE      FALSE
6 Female 70yr_80yr      Yes  TRUE      FALSE
Run Code Online (Sandbox Code Playgroud)

这是我使用的数据框: …

r tidyr tidyverse

4
推荐指数
2
解决办法
172
查看次数

在调试 VS 2022 中显示 DateTime .ToString()

我不确定这是否是 Visual Studio 的更新,或者我们的 IT 团队对我们的机器/基础设施所做的事情,但在调试 Visual Studio 2022 时,我无法再将 DateTime 视为字符串(我想是 ToString())。

例如:

调试截图

现在我可以弄清楚了,但它比"2024-01-01 00:00:00"更难看。

如果有人可以提供帮助,我将不胜感激,我已经查看了 VS 中我认为相关的设置,但我看不到任何东西!

c# debugging datetime visual-studio visual-studio-debugging

2
推荐指数
1
解决办法
103
查看次数

如何制作平滑的模糊效果?

如何使模糊像从透明到黑暗的渐变一样平滑?

.img {
  background: url(https://4kwallpapers.com/images/walls/thumbs_2t/13551.jpg);
  background-size: cover;
  background-position: center;
  width: 500px;
  height: 300px;
  position: relative;
}

.img .shadow {
  content: "";
  height: 150px;
  bottom: 0;
  width: 100%;
  position: absolute;
  pointer-events: none;
  left: 0;
  background: linear-gradient( 360deg, rgb(0 0 0 / 100%) 0%, rgba(255, 255, 255, 0) 100%);
  backdrop-filter: blur(10px);
}
Run Code Online (Sandbox Code Playgroud)
<div class="img">
  <div class="shadow"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

html css

13
推荐指数
3
解决办法
1228
查看次数

如何根据唯一频道名称或ID返回YouTube频道信息

@username我正在尝试编写一个简单的 Python 脚本,通过或搜索返回有关频道的一些信息UCrandomID123。

我知道您可以使用以下端点来访问频道数据:https://www.googleapis.com/youtube/v3/channels

然而,我遇到了一些可能的限制和问题。某些频道的频道 URL 中可能没有自定义“名称”:

在此输入图像描述

与

在此输入图像描述

我查了一下问题并发现了多个解决该问题的帖子:

但这两种解决方案都相当陈旧,我想知道现在是否有更好的解决方案来解决这个问题?

我有以下代码:

async def get_channel_id(self, channel_input):
        api_url = f"https://www.googleapis.com/youtube/v3/channels"
        params = {
            'part': 'snippet',
            'key': DEVELOPER_KEY,
            'maxResults': 1
        }

        # Determine if the input is a channel ID or username
        if channel_input.startswith('UC'):
            # Channel ID provided
            params['id'] = channel_input
        else:
            # Assume it's a custom username
            params['forUsername'] = channel_input

        response = await self.make_api_request(api_url, params) # Just a function to make …
Run Code Online (Sandbox Code Playgroud)

python youtube-data-api

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

装饰器可以命名它创建的类吗?

我有一个装饰器,它包装函数并生成类(出于比以下示例更好的原因)。这一切都有效,除了我希望能够设置type().

例如,

>>> class Animal:
...     pass
... 
>>> def linnean_name(genus, species):
...     def _linnean_name(fn):
...         class _Animal(Animal):
...             binomial_name = (genus, species)
...             def converse(self):
...                 fn()
...         _Animal.__name__ = fn.__name__.title()
...         _Animal.__module__ = fn.__module__
...         return _Animal
...     return _linnean_name
... 
>>> @linnean_name('Vombatus', 'ursinus')
... def Wombat():
...     print("Hello, I am a wombat.")
... 
>>> sheila = Wombat()
>>> sheila.binomial_name
('Vombatus', 'ursinus')
>>> sheila.converse()
Hello, I am a wombat.
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是

>>> type(sheila)
<class '__main__.linnean_name.<locals>._linnean_name.<locals>._Animal'>
Run Code Online (Sandbox Code Playgroud)

我希望看到的地方

<class …
Run Code Online (Sandbox Code Playgroud)

python

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

正则表达式:将整行与精确数量的重复标记相匹配

我正在尝试编写一个正则表达式,它只能匹配那些每个空格分隔的标记恰好出现两次的行,无论顺序如何。

例如,以下整行应该匹配:

1 1 2 2
100 10 10 100
A B B A 
HELLO HELLO
Run Code Online (Sandbox Code Playgroud)

以下行不应匹配:

hello hello hello
1 1 22
1001
Run Code Online (Sandbox Code Playgroud)

尽管我能够使用 regex 匹配给定行中的各个重复组(\d+)(?=.*(\1)),但我很难使用^$. 我的猜测是,当我使用前瞻时,这会创建一个无限循环,我们不断地查看每个标记(包括重复)并期望稍后在字符串中重复,尽管我不确定如何解决这个问题。有任何想法吗?谢谢!

[编辑]:根据评论中的问题添加一些细节:显然,在大多数编程语言中将其实现为函数是相当简单的。然而,我最初希望将其实现为正则表达式,因为我试图匹配数据库中的某些记录。因此,这个正则表达式旨在作为 CASE 语句嵌入到 SQL 查询中,在我看来,这将是进行选择的好方法。

考虑到这种正则表达式的明显复杂性,似乎创建一个函数是可行的方法,因此几乎任何以下答案都将是很好的解决方案,具体取决于具体情况。

regex regex-lookarounds

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

使用“表达式 SFINAE”时如何获得普通“auto”返回类型的行为?

考虑以下代码。

struct Widget {
    int& get();
};

template<typename X>
auto func_1(X& x) {
  return x.get();
}

template<typename X>
auto func_2(X& x) -> decltype(x.get()) {
  return x.get();
}
Run Code Online (Sandbox Code Playgroud)

当使用 type 的左值调用时Widget,该函数func_1将使用返回类型进行实例化int,其中函数func_2将具有返回类型int&。

func_1另外,和之间存在差异,func_2因为“表达式 SFINAE”是针对 执行的func_2。因此,对于X没有.get()成员的类型,func_2将不会参与重载决策。

我的问题是:我们如何func_1在执行表达式 SFINAE 的同时获得返回类型行为?

以下func_3似乎适用于我测试的情况,但我觉得应该有一个更简单的替代方案。另外,我不确定是否func_3具有与所有情况下完全相同的返回类型func_1。

template<typename X>
auto func_3(X& x) -> std::remove_cvref_t<std::decay_t<decltype(x.get())>> {
  return x.get();
}
Run Code Online (Sandbox Code Playgroud)

c++ templates sfinae overload-resolution

2
推荐指数
1
解决办法
116
查看次数

我可以在不同的线程中运行 pd.df.to_csv 吗?

我有一个相当大的熊猫数据框,我想根据条件选择一些行。

问题在于,另存为 CSV 的操作与程序的整体流程是分开的,并且会消耗相当多的时间。

是否可以分离线程,以便主线程前进到选定的行,同时将未选定的行保存为另一个线程中的 csv?

例如...

# This is pseudo code

import pandas as pd

df = pd.DataFrame({"col1":[x for x in range(10000)], "col2":[x**2 for x in range(0, 10000)]})

df_selected = df[df.apply(lambda x: x.col1%3==0, axis=1)] 
df_unselected = df[df.apply(lambda x: x.col1%3!=0, axis=1)] 


def Other_thread_save_to_csv(df:pd.DataFrame):
     # this function is the last function to use df_unselected .


Other_thread_save_to_csv(df_unselected )

all_other_hadlings(df_selected )

Run Code Online (Sandbox Code Playgroud)

python export-to-csv pandas

2
推荐指数
1
解决办法
101
查看次数