当前位置: 首页 > 知识库问答 >
问题:

C符号函数-来自MatLab?

谭宜
2023-03-14

我试图用C语言重新编写一些MatLab代码,我遇到了以下问题:

currentsign = sign(vector(i));

我在互联网上找到了以下链接:http://www.mathworks.co.uk/help/techdoc/ref/sign.html

我只是想知道C中是否有符号函数?如果没有,谁能推荐一些关于创建它的教程吗。

谢谢:)

共有3个答案

万修然
2023-03-14
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <vector>

inline int get_signum(int val) {
    return val < 0 ? -1
        : val == 0 ? 0
        : 1;
}

int main() {
    std::vector<int> values;
    for (int i = -5; i < 6; ++i)
        values.push_back(i);
    std::vector<int> signum(values.size());
    std::transform(values.begin(), values.end(), signum.begin(), get_signum);
    for (int i = 0; i < values.size(); ++i) {
        std::cout << std::setw(2) << values[i] << ' ' << signum[i] << std::endl;
    }
    return 0;
}
鲁单弓
2023-03-14

我建议

首先,编写一个仿函数,它接受单个元素并根据元素的值返回1-10

第二,使用std::变换与此函数/仿函数一起使用输入容器并用所需值填充第二个容器

template <typename T>
int signum(const T& val) {
  // implement signum logic
}

#include <vector>
#include <algorithm>

int main() {

  std::vector<int> data = ....;
  std::vector<int> signs(data.size());
  std::transform(data.begin(), data.end(), signs.begin(), signum<int>);

}
岳正阳
2023-03-14
template <typename T>
int sign (const T &val) { return (val > 0) - (val < 0); }

应向Ambroz Bizjak提供信贷。

template <typename T>
std::vector<int> sign (const std::vector<T> &v) {
    std::vector<int> r(v.size());
    std::transform(v.begin(), v.end(), r.begin(), (int(*)(const T&))sign);
    return r;
}

ideone的完整示例。

 类似资料:
  • 以下是MathML中可用的函数符号列表。 MathML符号 HTML实体 Hex代码 描述 ⋅ &sdot; ⋅ 指定点积 ⨯ &cross; ⨯ 指定交叉产品 ‖ &vert; ‖ 指定范数(幅度)条 ⟨ &lang; ⟨ 指定左尖括号 ⟩ &rang; ⟩ 指定直角括号 ∘ &compfn; ∘ 指定功能组成 → &rarr; → 指定一般函数映射 ↦ &mapsto; ↦ 指定具体的函数映射

  • 我正在读一篇关于整数安全性的文章。以下是链接:http://ptgmedia.pearsoncmg.com/images/0321335724/samplechapter/seacord_ch05.pdf 在第166页,有这样一句话: 涉及无符号操作数的计算永远不会过流,因为不能由结果无符号整数类型表示的结果将被模化为比结果类型可以表示的最大值大一的数字。 这是什么意思?感谢您的回复。

  • 我想知道使用C++使类构造函数从有限列表中获取参数的最佳方法是什么。例如,如果我有一个名为的类,那么构造函数将只接受、或并将值存储到私有变量中。然后,我将有一个名为的方法,它将打印变量。 目前,我已经能够使这个工作: 但是,用来访问类的结构的符号似乎有点笨拙(我想编写一个Arduino库,所以初学者可能需要使用构造函数/方法。 有没有更好的方法(可能使用表示法?)谢谢!

  • 我是c的新手,我见过许多c编译器自动将int argc、char*argv作为参数传递到main函数中,但它们在哪里定义?有点好奇。

  • 问题内容: input_var = input (“Press ‘E’ and ‘Enter’ to Exit: “) 我正在使用Python 2.5。我该如何克服这个错误? 问题答案: 读取并评估Python表达式。当它尝试对其求值时,它将查找未定义的变量,并且失败。 或者,更好的是,在Unix上,使用readline,以便用户可以编辑其输入。

  • 本文向大家介绍c++11 符号修饰与函数签名、函数指针、匿名函数、仿函数、std::function与std::bind,包括了c++11 符号修饰与函数签名、函数指针、匿名函数、仿函数、std::function与std::bind的使用技巧和注意事项,需要的朋友参考一下 一、符号修饰与函数签名 1、符号修饰 编译器将c++源代码编译成目标文件时,用函数签名的信息对函数名进行改编,形成修饰名。G