小编Hes*_*aqi的帖子

0.1浮点数大于0.1双.我以为它是假的

让:

double d = 0.1;
float f = 0.1;
Run Code Online (Sandbox Code Playgroud)

应该表达

(f > d)
Run Code Online (Sandbox Code Playgroud)

回来true还是false

根据经验,答案是true.但是,我期待它false.

0.1不能在二进制完美表示,而双具有1516十进制精度位数,并且浮体具有只7.所以,他们两个都不到0.1,而双人更接近0.1.

我需要一个确切的解释true.

c c++ floating-point double rounding

100
推荐指数
5
解决办法
8537
查看次数

将"大"十六进制数字(字符串格式)转换为十进制数字(字符串格式),不带BigInteger类

如何转换"大"十六进制数字(字符串格式):

EC851A69B8ACD843164E10CFF70CF9E86DC2FEE3CF6F374B43C854E3342A2F1AC3E30C741CC41E679DF6D07CE6FA3A66083EC9B8C8BF3AF05D8BDBB0AA6CB3EF8C5BAA2A5E531BA9E28592F99E0FE4F95169A6C63F635D0197E325C5EC76219B907E4EBDCD401FB1986E4E3CA661FF73E7E2B8FD9988E753B7042B2BBCA76679

到十进制数字(字符串格式):

166089946137986168535368849184301740204613753693156360462575217560130904921953976324839782808018277000296027060873747803291797869684516494894741699267674246881622658654267131250470956587908385447044319923040838072975636163137212887824248575510341104029461758594855159174329892125993844566497176102668262139513

不使用BigIntegerClass(因为我的应用程序应该支持没有.NET Framework 4的机器)?

c# hex base biginteger

12
推荐指数
1
解决办法
4276
查看次数

二进制图像"视线"边缘检测

考虑这个二进制图像: 在此输入图像描述

普通边缘检测算法(Like Canny)将二进制图像作为输入,并生成红色所示的轮廓.我需要另一种算法,它将点"P"作为第二条输入数据."P"是前一图像中的黑点.该算法应该导致蓝色轮廓.蓝色轮廓表示二进制图像的点"P"视线边缘.

我搜索了很多实现这一目标的图像处理算法,但没有找到.我也试着考虑一个新的,但我仍然有很多困难.

algorithm image-processing edge-detection

8
推荐指数
1
解决办法
659
查看次数

__int64 用于 GCC 作为预处理器选项

通常 Microsoft 代码使用__int64GCC 不理解的代码。我知道我可以把它写成这样的宏:

#define __int64 long long
Run Code Online (Sandbox Code Playgroud)

但由于代码可移植性,我不想这样做。我正在尝试为 GCC 提供以下预处理器选项:

-D__int64="long long"
Run Code Online (Sandbox Code Playgroud)

由于两者之间的空格,我收到以下错误long

gcc.exe: error: long: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如何解决?

c gcc c-preprocessor

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

使用mpatches.Patch获取自定义图例

我正在使用以下代码创建自定义matplotlib图例.

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
colors = ["g", "w"]
texts = ["Green Data Description", "RedData Description"]
patches = [ mpatches.Patch(color=colors[i], label="{:s}".format(texts[i]) ) for i in range(len(texts)) ]
plt.legend(handles=patches, bbox_to_anchor=(0.5, 0.5), loc='center', ncol=2 )
Run Code Online (Sandbox Code Playgroud)

结果传奇如下:

在此输入图像描述

1 - 图例中的白色符号未显示,因为默认图例背景也是白色.如何将图例背景设置为其他颜色?

2 - 如何将图例中的矩形符号更改为圆形?

python matplotlib legend

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

张量流滑动窗口转换

我想使用Tensorflow为RNN应用程序进行滑动窗口转换.

对于窗口大小为4,使用Tensorflow简单重塑,我们可以转换以下张量:

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
Run Code Online (Sandbox Code Playgroud)

至:

[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]
Run Code Online (Sandbox Code Playgroud)

但是我希望它像下面的张量一样大步走1:

[[1,2,3,4],[2,3,4,5],[3,4,5,6],[7,8,9,10],...,[17,18,19,20]]
Run Code Online (Sandbox Code Playgroud)

使用Tensorflow平铺,我可以得到:

[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]]
Run Code Online (Sandbox Code Playgroud)

我想通过一些转变,我可以得到我想要的东西.你有什么想法吗?

我生成上述平铺结果​​的代码很简单,如下所示.但是每个元素都是1D张量,表示瓶颈(来自CNN的特征向量)而不是上面例子中的数字.

model.logits, model.end_points = inception_v3.inception_v3(model.X_Norm, num_classes=nbrOfOutputNeurons, is_training=is_training)
model.bottleneck = slim.flatten(model.end_points['PreLogits']) # The ouput before FC

x = tf.reshape(model.bottleneck, [1, -1, bottleneck_tensor_size])
x = tf.tile(x, [rnn_time_steps, 1, 1])
Run Code Online (Sandbox Code Playgroud)

python tensorflow

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

需要使用字节序处理

考虑以下代码:

#include "stdio.h"

typedef struct CustomStruct
{
  short Element1[10];
}CustomStruct;

void F2(char* Y)
{
  *Y=0x00;
  Y++; 
  *Y=0x1F;    
}

void F1(CustomStruct* X)
{
  F2((char *)X);
  printf("s = %x\n", (*X).Element1[0]);
}

int main(void)
{
  CustomStruct s;
  F1(&s);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

在运行时,在调用函数结束时,F1通过使用不同的编译器得到不同的结果.

(*X).Element1[0] = 0x1f00在一些编译器和(*X).Element1[0] = 0x001f另一个编译器.

我很清楚它是一个字节序问题.

是否有任何编译器选项或解决方法使用,以便我得到(*X).Element1[0] = 0x001f所用的编译器?

c c++ pointers cpu-architecture endianness

0
推荐指数
1
解决办法
809
查看次数

比较Char指针

我想比较两个Char指针:

   char * x;
   char * y;

   x = "Hesham";
   y = "Hesham";

   printf("%d %d \n", &x, &y);

   if(x==y)
   {
     printf("=\n");
   }
   else
   {
     printf("!=\n");
   }
Run Code Online (Sandbox Code Playgroud)

执行结果是:

2293368 2293360
=
Run Code Online (Sandbox Code Playgroud)

1 - 为什么两个指针有不同的收件人,操作==返回true?

2 -为什么编译存储字符串没有文字Hesham只有一次,并使用其地址两次xy

c c++ pointers equality char

0
推荐指数
1
解决办法
3562
查看次数

可变长度数组的数组

通常,我们可以这样写:

const char* names1[] = { "Stack", "LongerThanStack" };
const char* names2[] = { "Overflow", "LongerThanOverflow", "O" };
Run Code Online (Sandbox Code Playgroud)

如何制作一个names包含上述两个数组的新数组?

二维数组应该这样做.我尝试了以下代码,但G++由于内部数组的长度可变,因此不接受它.

const char* names[2][] = {{ "Stack", "LongerThanStack" }, 
                    { "Overflow", "LongerThanOverflow", "O" }};
Run Code Online (Sandbox Code Playgroud)

c++ arrays

-1
推荐指数
1
解决办法
123
查看次数

C++中的变量名称

对于C++,请考虑以下伪代码:

int sampleFunction (int selector)
{
  int var_1 = ............ ;
  int var_2 = ............ ;

  return var_[selector];
}
Run Code Online (Sandbox Code Playgroud)

最后一行等同于代码:

if (selector == 1)
{
  return var_1;
}
else if (selector == 2)
{
  return var_2;
}
Run Code Online (Sandbox Code Playgroud)

但我需要在运行时使用另一个变量(selector)来评估变量名称.怎么做到这一点?那么,C语言呢?

我通常使用MATLAB命令eval来执行此操作.此外,在C#中,这可以通过Reflection实现.

c c# c++ arrays matlab

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