C# 怎么从txt 读取小数呢

YXLYY 2015-07-28 11:26:02
大概有几千行数据吧
每一行有三个小数
每个小数由空格隔开


我用了很多循环才读出来,我想问下有没有比较简单的方法


基本格式如下
104.544 285.106 -0.0198154
232.233 291.923 -0.15162
210.273 290.588 2.39844
103.807 290.364 -0.074542
119.751 297.782 0.0620041
124.992 301.494 -0.0500259
195.477 308.035 2.18787
189.829 310.14 2.16521
226.571 307.255 -0.135975
174.067 308.065 3.05251
100.55 298.681 4.02637
122.539 319.984 -0.147274
128.208 324.887 -0.132906
180.539 335.381 -0.118507
...全文
373 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
devmiao 2015-07-29
  • 打赏
  • 举报
回复
不是,是linq
  • 打赏
  • 举报
回复
楼上大神直接用正则搞定
  • 打赏
  • 举报
回复
string txt = @"104.544 285.106 -0.0198154
232.233 291.923 -0.15162
210.273 290.588 2.39844
103.807 290.364 -0.074542
119.751 297.782 0.0620041
124.992 301.494 -0.0500259
195.477 308.035 2.18787
189.829 310.14 2.16521
226.571 307.255 -0.135975
174.067 308.065 3.05251
100.55 298.681 4.02637
122.539 319.984 -0.147274
128.208 324.887 -0.132906
180.539 335.381 -0.118507";
foreach (var str in Regex.Split(txt, @"\s+"))
{
    Console.WriteLine(str);
}
YXLYY 2015-07-29
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
既然你的数据本身就是二维表的形式,那么至少也要循环2次才能获取每一个数据啊
我的得到数据的方式很原始,比如得到第一行字符串,我用一个循环一个字符一个字符查找一个数字,感觉电脑卡死了,半天不出结果! 说明白点,每一行三个数字,其实就是相当于一个点的三维坐标,点我用一个数据结构表示(里面有x,y,z) 我就想知道C# 有没有像matlab一样方便的方法,直接就能得到第一行的三个小数,而不是像我一样一个字符一个字符判断
於黾 2015-07-29
  • 打赏
  • 举报
回复
既然你的数据本身就是二维表的形式,那么至少也要循环2次才能获取每一个数据啊
於黾 2015-07-29
  • 打赏
  • 举报
回复
用了很多循环? 很多是多少? 双重for循环叫很多循环吗?
YXLYY 2015-07-29
  • 打赏
  • 举报
回复
引用 2 楼 devmiao 的回复:
double[][] data = File.ReadAllLines().Select(x => x.Split(' ').Select(y => double.Parse(y)).ToArray()).ToArray();
select 是SQL语句吗
於黾 2015-07-29
  • 打赏
  • 举报
回复
为啥要一个字符一个字符的操作? 不是有split函数可以直接转成string[]数组吗 然后再循环数组转float型不就得了
xuzuning 2015-07-29
  • 打赏
  • 举报
回复
你取出数据是要用的,所以你得有个载体。比如
struct Vector
     {
         public double x, y, z;
 
        public Vector(string str)
        {
            var r = str.Split(' ');
            this.x = double.Parse(r[0]);
            this.y = double.Parse(r[1]);
            this.z = double.Parse(r[2]);
        }
 
         public override string ToString()
         {
             return "x = " + x + ", y = " + y + ", z = " + z;
         }
    }
你可以写一个方法用来从文件读
        static List<Vector> getVector()
        {
            var res = new List<Vector>();
            foreach (var x in File.ReadAllLines(@"data.txt"))
            {
                res.Add(new Vector(x));
            }
            return res;
        }
于是你就有了
            foreach (var x in getVector())
            {
                Console.WriteLine(x.ToString());
            }
C# 是开发工具,不会像 matlab 之类的应用工具那样提供具体的方法 你总是要根据项目的需要和个人喜好,书写一些实用代码的
acade2012 2015-07-29
  • 打赏
  • 举报
回复
ReadAllLines() 读出文件所有行,然后每一行用空格分割得到一个数组,数组里就是你的3个数字,类型转换一下就ok了。
string[] list = System.IO.File.ReadAllLines(@"filepath");

            foreach (string line in list)
            {
                string[] arr = line.Split(' ');

                double num0 = Convert.ToDouble(arr[0]);//数字一
                double num1 = Convert.ToDouble(arr[1]);//二
                double num2 = Convert.ToDouble(arr[2]);//三
            }
devmiao 2015-07-28
  • 打赏
  • 举报
回复
double[][] data = File.ReadAllLines().Select(x => x.Split(' ').Select(y => double.Parse(y)).ToArray()).ToArray();
YXLYY 2015-07-28
  • 打赏
  • 举报
回复
真心很急切,求大神指点一二
源码链接: https://pan.quark.cn/s/9f500ac403c2 摄像头配置是嵌入式系统构建中的一个关键步骤,它涉及到硬件与软件的紧密协作。图像信号处理器(ISP)作为图像信号处理的核心单元,在摄像头配置过程中扮演着至关重要的角色。在硬件层面,它涵盖了摄像头与ISP之间的连接以及信号传输的细节;在软件层面,主要依托V4L2框架进行视频流的采集和处理。接下来将具体说明文档中涉及的硬件机制、软件机制、信号配置及V4L2等领域的摄像头配置实践经验。 ### 硬件机制与连接 文档首先阐述了硬件线路中中央处理器与摄像头之间的连接方式。在此,相机串行接口(CSI)模块是摄像头数据传输的核心部分,它负责与外部CMOS图像感应元件进行交互。CSI接口包含以下几个关键信号线: 1. **CSI_VSYNC (垂直同步信号)**:用于标示一帧图像的起始点。该信号传输方向为从图像感应元件(sensor)至应用处理器(AP)。 2. **CSI_HSYNC (水平同步信号)**:用于提供行同步信号,并用于识别消隐信号。同样,信号流向为sensor至AP。 3. **CSI_D[7:0]**:8位摄像头数据总线,用于传输各种图像数据,包括YUV、YCC、RGB或Bayer格式。数据流向为sensor至AP。 4. **CSI_MCLK (传感器主时钟信号)**:由传感器输出主时钟信号,为外部摄像头提供时钟基准。信号流向为AP至sensor。 5. **CSI_PIXCLK (像素时钟信号)**:由摄像头输出,通常与MCLK主时钟信号频率相同。信号流向为sensor至AP。 正确设置这些连接,确保信号同步传输,是硬件配置的基础。 ### 软件机制与驱动程序 摄像头驱动...
文末附数据集可视化效果图。 【数据集概况】 · 检测类别(中文):[大豆(soybean)] · 训练集:777 张 · 验证集:0 张 · 测试集:0 张 · 总计:777 张 该数据集聚焦农业科研领域,针对温室环境下大豆幼苗的精准检测需求,为植物生长监测与自动化管理提供高质量数据支撑。训练集777张,验证集和测试集为0张,符合农业科研场景中对特定生长阶段样本集中训练的需求,确保模型在目标场景下的泛化能力。所有样本均采用精准的边界框标注,标注规范统一,确保了数据集在大豆幼苗检测任务中的高精度与可靠性。该数据集可应用于农业科研机构的植物生长监测系统、智能温室管理平台等场景,... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 100 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9922** mAP50-95 | 0.9141 Precision | 0.9771 Recall | 0.9710 train/box_loss | 0.4231 train/cls_loss | 0.1829 val/box_loss | 0.3920 val/cls_loss | 0.1737 【训练过程分析】 100 轮训练后 mAP50 达到 0.9922,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。mAP50-95 为 0.9141,和 mAP50 差距仅 0.08,框的定位精度也很扎实。 【模型性能评估】 Precision 0.9771、Recall 0.9710,精召双高,模型对大豆的检测能力强。...

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧