如何显示结果 [英] How to display the result

查看:200
本文介绍了如何显示结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,


我是CI使用Visual Studio 2010的新用户,我不知道如何显示输出结果,我尝试过使用printf,但是失败了,结果不能说明程序中计算的真实性.
附件链接是我的项目代码.
与各向异性过滤有关.
在此先感谢


http://www.sendspace.com/file/b2qs96 [

Hi everyone,


I''m new in C I use visual studio 2010, I don''t know how to display my output result, I''ve tried to use printf, but it failed, the result is not indicate the truth of calculation in my program.
Attached link is my project code.
it related with anisotropic filtering.
thanks in advance


http://www.sendspace.com/file/b2qs96[^]





below a brief of my code :

main.cpp :

#include <stdio.h>
#include <stdlib.h>
#include "anisodiff1D.h"
#include "anisodiff1D_initialize.h"
#include "anisodiff1D_terminate.h"
#include "rt_nonfinite.h"
#include "anisodiff1D.h"
#include "power.h"
#include "conv.h"
   
 int main(void)
 {
		real_T diff_sig_data[10];
		int32_T diff_sig_sizes[1];
        anisodiff1D_initialize();
		anisodiff1D(diff_sig_data,diff_sig_sizes);  
		anisodiff1D_terminate();
        system ("PAUSE");
        return 0;
 }



anisodiff1D.cpp:




anisodiff1D.cpp :


/* Include files */
#include "rt_nonfinite.h"
#include "anisodiff1D.h"
#include "power.h"
#include "conv.h"

void anisodiff1D(real_T diff_sig_data[11], int32_T diff_sig_sizes[1])
{
  static const real_T b_sig[11] = { 10,10,11,10,9,10,13,10,10,13,9 };
 

  int32_T t;
  int32_T nablaW_sizes;
  real_T nablaW_data[11];
  int32_T nablaE_sizes;
  real_T nablaE_data[11];
  real_T b_nablaW_data[11];
  real_T b_nablaE_data[11];
  int32_T tmp_sizes;
  real_T tmp_data[11];
  int iteration=5;
  int kappa=5.0;
 
  diff_sig_sizes[0] = 11;
  memcpy((void *)&diff_sig_data[0], (void *)&b_sig[0], 11U * sizeof(real_T));
  //real_T signal=diff_sig_data[nablaE_sizes];

  /*  Anisotropic diffusion. */
  for (t = 0; t < iteration; t++)  //loop as long as number iteration
  {
    conv(diff_sig_data, diff_sig_sizes, nablaW_data, *(int32_T (*)[1])&nablaW_sizes); //do the convolution to distinguish between edge end not
    b_conv(diff_sig_data, diff_sig_sizes, nablaE_data, *(int32_T (*)[1])&nablaE_sizes);
 
    /*  Diffusion function. */
 
    nablaW_sizes = 11;
    for (nablaE_sizes = 0; nablaE_sizes < 11; nablaE_sizes++) // the coefficient
	{
      b_nablaW_data[nablaE_sizes] = nablaW_data[nablaE_sizes] / kappa;
      b_nablaE_data[nablaE_sizes] = nablaE_data[nablaE_sizes] / kappa;
    }
 
	// function to get exp(-(nablaW/kappa).^2)
    power(b_nablaW_data, *(int32_T (*)[1])&nablaW_sizes, tmp_data, *(int32_T (*)[1])&tmp_sizes);
    nablaE_sizes = 11;
    power(b_nablaE_data, *(int32_T (*)[1])&nablaE_sizes, b_nablaW_data, *(int32_T (*)[1])&tmp_sizes);
 
	/*  Discrete PDE solution. */
	diff_sig_sizes[0] = 11;
    for (nablaE_sizes = 0; nablaE_sizes < 11; nablaE_sizes++) 
	{
      diff_sig_data[nablaE_sizes] = diff_sig_data[nablaE_sizes] + (1/3) * (((1.0 / (1.0 +tmp_data[nablaE_sizes]) * nablaW_data[nablaE_sizes] + 1.0 / (1.0 +b_nablaW_data[nablaE_sizes]) * nablaE_data[nablaE_sizes]))+(diff_sig_data[0]-diff_sig_data[nablaE_sizes]));
	
printf("%g\n",diff_sig_data);  
    }
		  
  }
 
}

推荐答案

函数末尾的printf语句使用diff_sig_data作为参数.这是一个数组,而不是单个值.根据您的需要,您应该输出一个值,例如:

The printf statement at the end of your function uses diff_sig_data as argument. This is an array and not a single value. Depending on what you want you should either output a single value, for example:

printf("%g\n", diff_sig_data[0]);



或将整个数组封闭在一个循环中



or the entire array by enclosing it in a loop

for (int i = 0; i < 11; ++i)
    printf("%g\n", diff_sig_data[i]);


如果您使用的是Visual Studio,则不需要该系统(暂停");如果您想在控制台中查看结果,只需按Ctr + F5,该窗口就不会立即消失.如果仅按F5,则窗口将闪烁并显示结果,而您将无法看到它(像其他编译器一样)
if you are using Visual Studio you don''t need that system("pause"); if you want to see your result in the console just press Ctr + F5 and the window wont disappear right away. If you press only F5 the window will flash with the result and you wont be able to see it (like other compilers )


这篇关于如何显示结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆