知道这个电话:
pow(4);
Run Code Online (Sandbox Code Playgroud)
将生成此错误消息:
error: too few arguments to function ‘pow’
Run Code Online (Sandbox Code Playgroud)
我正在学习函数的指针,当看到下面的代码工作时,我感到很惊讶.但为什么?
#include<stdio.h>
#include<math.h>
void aux(double (*function)(), double n, double x);
int main(void)
{
aux(pow, 4, 2);
aux(sqrt, 4, 0);
return 0;
}
void aux(double (*function)(double), double n, double x)
{
if(x == 0)
printf("\nsqrt(%.2f, %.2f): %f\n", n, x, (*function)(n));
else
printf("\npow(%.2f, %.2f): %f\n", n, x, (*function)(n));
}
Run Code Online (Sandbox Code Playgroud)
我编译使用:
gcc -Wall -Wextra -pedantic -Wconversion -o test test.c -lm
Run Code Online (Sandbox Code Playgroud)
结果是:
pow(4.00, 2.00): 16.000000
sqrt(4.00, 0.00): 2.000000
Run Code Online (Sandbox Code Playgroud)
如果我将第一次调用的第三个参数更改aux为3,结果将更改为:
pow(4.00, 3.00): 64.000000 …Run Code Online (Sandbox Code Playgroud) 在许多教程中我看到sdl-config编译 sdl c 程序。在c++的例子中我也见过。这是来自此处的示例。
g++ sdlExample.cpp `sdl-config --cflags --libs` -o sdlExample
Run Code Online (Sandbox Code Playgroud)
是什么sdl-config --cflags --libs意思?为什么里面有口音?
好吧,我想知道编译器“读取”代码的顺序是什么。例如:
假设我有以下代码片段:
int N, M;
N = M = 0;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,编译器会为 N 和 M 分离一部分内存(int,4 个字节),然后在第二行(我的疑问来自哪里),分为两件事,一:
编译器“读取”N 等于M 并且都等于0。
或者
编译器“读取”零,将其放入 M 的内存中,然后获取 M 的值,即零,并将其放入 N 的内存中。
换句话说,是从右到左,还是从左到右?
我不知道我的疑问是否清楚,但在我所做的测试中:
int i=0; /*I declared the variable i, and assign zero value to it*/
printf("%d", i++); /*Prints 0*/
printf("%d", i); /*Prints 1*/
Run Code Online (Sandbox Code Playgroud)
我理解上面的代码,在第二行,编译器似乎(根据我的理解)从左到右“读取”,将 i 值分配给类型 %d ,并且在打印之后,变量 i 递增,因为在第三行打印为1。
下面的代码片段反转了 ++ 的位置:
int i=0; /*I declared i variable to zero*/
printf("%d", ++i); /*Prints 1*/
printf("%d", i); /*Prints 1*/
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在第二行,(根据我的理解)编译器从左到右“读取”,当编译器读取将打印的内容时(留在逗号之后,这个空间的名称是什么?) ,首先“读取”++ 并递增下面的变量(在本例中为 i),然后分配给要打印的 …
我有一个包含模型规范和一些训练和评估模型的方法的课程。我想复制一个经过训练的对象,我尝试过copy.deepcopy()但没有成功。
下面的代码只是一个示例,但我希望它适用于使用以下相同想法的任何模型:
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import argparse
import sys
import copy
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
FLAGS = None
class Model():
def __init__(self):
self.x = tf.placeholder(tf.float32, [None, 784])
self.W = tf.Variable(tf.zeros([784, 10]))
self.b = tf.Variable(tf.zeros([10]))
self.y = tf.matmul(self.x, self.W) + self.b
self.y_ = tf.placeholder(tf.float32, [None, 10])
self.cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.y_, logits=self.y))
self.train_step = tf.train.GradientDescentOptimizer(0.5).minimize(self.cross_entropy)
def train(self, mnist, sess):
for _ in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(self.train_step, …Run Code Online (Sandbox Code Playgroud) 我在使用神经网络预测时间序列时遇到问题。一些预测数据与预期数据相符,如下所示:(黑色是实时序列,蓝色是我的神经网络的输出)
但同样的代码,对于其他时间序列,预测数据与预期数据不符,并且有一个单位的延迟,如下:
时间序列:沃尔玛股票价格。
时间序列:美元 Libra 兑换。
我找到了一些关于神经网络的一些变体的文章,并在结果部分显示了像我的结果一样具有延迟的图,如下所示:
时间序列:美元 Libra 兑换。(文章链接:http://www.sciencedirect.com/science/article/pii/S1877050915015793)
有人知道这是一种常见行为还是我的代码有问题?大约三个月前,我遇到了这个问题,因为我试图找出代码中的一些错误,但没问题。
谢谢,我很感激任何提示。
matlab machine-learning time-series neural-network forecasting
给定一个信号列表(kill -l 可以给你),我想知道所有可以引发其中一个信号的 ctrl + 键。例如,当在终端上运行前台进程时,ctrl+c 会引发 SIGINT。是否可以 ?ctrl+键映射到系统上的哪里?如果有一个C可以显示的功能就更好了。
那是我的代码:
#include<stdio.h>
int main()
{
int vet[10], i;
for(i=30; i<=45; i++)
{
scanf("%d", &vet[i]);
}
for(i=30; i<=45; i++)
printf(" %d ", vet[i]);
for(i=30; i<=45; i++)
printf(" %x", &vet[i]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在内存中只声明了10个int类型的位置,但是我得到了更多,所以发生了什么?它是内存溢出?
并且类型%x是否正确打印内存地址?
输入是:
1
2
3
4
5
6
7
8
9
10 /*It was to be stoped right here !?*/
11
12
13
14
15
16
Run Code Online (Sandbox Code Playgroud)
并返回:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /*I put space to indent*/ …Run Code Online (Sandbox Code Playgroud) c ×5
c++ ×2
compilation ×2
arrays ×1
bash ×1
ctrl ×1
forecasting ×1
gcc ×1
linux ×1
matlab ×1
memory ×1
oop ×1
python ×1
sdl ×1
signals ×1
tensorflow ×1
time-series ×1