none
已知一维矩阵,构造斜对称矩阵,如何调整控制台输出结果,如何保存控制台输出结果

    问题

  • 已知一维矩阵{51.86,43.81,38.74,31.55,28.23,24.03,20.86},构造出斜对称矩阵如下

               51.86  43.81 38.74     31.55  28.23  24.03  20.86
    51.86     0      8.05   13.12     20.31  23.63  27.83    31
    43.81  -8.05     0       5.07     12.26   15.58 19.78   22.95
    38.74 -13.12 -5.07      0        7.19     10.51 14.71   17.88
    31.55 -20.31 -12.26 -7.19       0        3.32   7.52     10.69
    28.23 -23.63 -15.58 -10.51  -3.32       0       4.2      7.37
    24.03 -27.83 -19.78 -14.71  -7.52    -4.2       0        3.17
    20.86   -31    -22.95 -17.88 -10.69  -7.37    -3.17      0


    代码如下
      static void Main(string[] args)
            {
                double[] input = { 51.86, 43.81, 38.74, 31.55, 28.23, 24.03, 20.86 };
                for (int i = 0; i < input.Length; i++)
                {
                    for (int j = 0; j <=i; j++)
                    {
                        double difference = input[i] - input[j];
                        Console.WriteLine("{0:0.00}", difference);
                    }
                    Console.WriteLine();
                    Console.WriteLine();      
                }
                Console.ReadKey();
    可以获取斜对称矩阵的一半。
    现在的问题是,我的一维矩阵有465个元素,控制台输出结果部分被覆盖了
    理论上应该有108345个数值,但是我在控制台输出结果的对话框中复制粘贴数据,只得到了8997个数值

    所以寻求两种解决办法
    1.直接将控制台输出结果传入txt文档中
    2.调整控制台的输出界面,将输出结果显示完全

    我还在学习C#入门阶段,但是临时需要计算一些实验数据

    还请个位前辈帮帮忙,非常感谢



    2016年2月15日 15:14

答案

  • 你好,

    >>1.直接将控制台输出结果传入txt文档中

    这个可以是FileStream 来把内容写入txt文档中. 可以参考下面的代码。

            static void Main(string[] args)
            {
                double[] input = { 51.86, 43.81, 38.74, 31.55, 28.23, 24.03, 20.86 };
                for (int i = 0; i < input.Length; i++)
                {
                    for (int j = 0; j <= i; j++)
                    {
                        double difference = input[i] - input[j];
                        WriteContext(string.Format("{0:0.00}", difference));
                        Console.WriteLine("{0:0.00}", difference);
                    }
                    WriteContext("");
                    WriteContext("");
                    Console.WriteLine();
                    Console.WriteLine();
                }
                Console.ReadKey();
            }
    
            public static void WriteContext(string context)
            {
                string filePath = @"d:\ouput.txt";
                FileStream fs = null;
                fs = new FileStream(filePath, FileMode.Append);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine(context);
                sw.Close();           
            }

    >>调整控制台的输出界面,将输出结果显示完全.

    应该可以把你的结果,放到内存,在生成图片来显示。

    Best regards,

    Cole Wu

    • 已标记为答案 Herman Liu 2016年2月17日 14:15
    2016年2月16日 7:33
    版主

全部回复

  • 你好,

    >>1.直接将控制台输出结果传入txt文档中

    这个可以是FileStream 来把内容写入txt文档中. 可以参考下面的代码。

            static void Main(string[] args)
            {
                double[] input = { 51.86, 43.81, 38.74, 31.55, 28.23, 24.03, 20.86 };
                for (int i = 0; i < input.Length; i++)
                {
                    for (int j = 0; j <= i; j++)
                    {
                        double difference = input[i] - input[j];
                        WriteContext(string.Format("{0:0.00}", difference));
                        Console.WriteLine("{0:0.00}", difference);
                    }
                    WriteContext("");
                    WriteContext("");
                    Console.WriteLine();
                    Console.WriteLine();
                }
                Console.ReadKey();
            }
    
            public static void WriteContext(string context)
            {
                string filePath = @"d:\ouput.txt";
                FileStream fs = null;
                fs = new FileStream(filePath, FileMode.Append);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine(context);
                sw.Close();           
            }

    >>调整控制台的输出界面,将输出结果显示完全.

    应该可以把你的结果,放到内存,在生成图片来显示。

    Best regards,

    Cole Wu

    • 已标记为答案 Herman Liu 2016年2月17日 14:15
    2016年2月16日 7:33
    版主
  • 非常感谢
    2016年2月17日 14:15