C程序:从文件中读取矩阵数据,并显示出来,利用链式存储结构。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C程序:从文件中读取矩阵数据,并显示出来,利用链式存储结构。相关的知识,希望对你有一定的参考价值。

参考技术A md.row;
p->
return
sm;


sm->,col,列数,数据这样存储的。
你这个不会是稀疏矩阵吧!
typedef
struct

int
row,矩阵每个维度的大小自然先读出来.d
=sm->
for(i=0;md=sm->
p->md;head.md;
typedef
struct
strucSparseMat

int
m;head;
p=p->
return
md;

读矩阵,如果储存了;count=i;head.md;p,如果数据个数也储存了就最好了。
SparseMat
*readMat(FILE
*fp,fp);next->next
=NULL;next=p->pre=NULL,fp),sizeof(n);
MatNode
head.d;next=(PMatNode)malloc(sizeof(MatNode));
p->head.md)
break;

else

p->,n;
int
count,fp);
p->md;
fread(&n,1,sizeof(n),fp);
fread(&count.col;
typedef
struct
struMatNode
matdata
md;//
SparseMat;i++)

if(!readdata(fp,sm->!fp)return
NULL;
if(feof(fp)
&&
;
p=&sm->head;md.col=sm->!md)return
NULL;
fread(md,1,sizeof(md);head.md,*PMatNode;p->.row=sm->head;
if(feof(fp))return
NULL;
if(,
SparseMat
*sm)

int
i;
PMatNode
p;
if(!fp)return
NULL;next;
//&sp->
MatNode,要看情况了;
double
d;
matdata,sizeof(count),1;//i<count
&&
!feof(fp);next->pre=p;
p->,1、列号、数据还可以这样存储矩阵!
一般都是行数;
p->!sm)return
NULL;
fread(&m;
struMatNode
*pre,*nxt;
matdata
*readdata(FILE
*fp,matdata
*md)
if(啥时候矩阵,开始流行用链表做了!
行号
参考技术B 你可以用动态分配内存啊,
用sizeof
mollce
你好、希望能帮到你哈!

C# 从文件加载数据并排序到数组中

【中文标题】C# 从文件加载数据并排序到数组中【英文标题】:C# loading data from a file and sorting into arrays 【发布时间】:2017-03-03 20:16:40 【问题描述】:

所以我需要从一个文件中读取并以合适的格式显示它。到目前为止,我可以读取所有数据并且它确实显示在表单上,​​但是从HRData 它只读取 1 整行并在表单上显示我需要它来显示文件特定部分的每一行。我已经放下了我从文件中读取的代码的 sn-p 并显示该文件中的 HRData,但我需要每一行都在表中,而不是同一行的重复。任何帮助,将不胜感激。对不起,我的代码布局我仍在尝试习惯于堆栈溢出所以道歉。

DateTime date = new DateTime(2014, 09, 08, 16, 0, 0);

string[] Data1 = Regex.Split(filetext, "HRData]");
Data1[1] = Data1[1].Trim();
string[] HRData = Regex.Split(Data1[1], "\r\n|\r\n");

dataGridView1.ColumnCount = 7;
dataGridView1.ColumnHeadersVisible = true;

DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();

columnHeaderStyle.BackColor = Color.Beige;
columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Bold);
dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle;

dataGridView1.Columns[0].Name = "Time";
dataGridView1.Columns[1].Name = "Heart Rate (bpm)";
dataGridView1.Columns[2].Name = "Speed";
dataGridView1.Columns[3].Name = "Cadence (rpm)";
dataGridView1.Columns[4].Name = "Altitude (m/ft)";
dataGridView1.Columns[5].Name = "Power (watts)";
dataGridView1.Columns[6].Name = "Power Balance";



if (Versionval == 106)

    String FindVersionMode = "VersionMode";
    int indexofVersionMode = filetext.IndexOf(FindVersionMode);
    VersionModeTypeA = filetext.Substring(indexofVersionMode + 5, 1);
    VersionModeTypeB = filetext.Substring(indexofVersionMode + 6, 1);
    VersionModeTypeC = filetext.Substring(indexofVersionMode + 7, 1);
    VersionModeTypeD = filetext.Substring(indexofVersionMode + 8, 1);
    VersionModeTypeE = filetext.Substring(indexofVersionMode + 9, 1);
    VersionModeTypeF = filetext.Substring(indexofVersionMode + 10, 1);
    VersionModeTypeG = filetext.Substring(indexofVersionMode + 11, 1);
    VersionModeTypeH = filetext.Substring(indexofVersionMode + 12, 1);

    //SpeedType = Int32.Parse(VModeTypeA);
    //CadenceType = Int32.Parse(VModeTypeA);
    //AltType = Int32.Parse(VModeTypeA);
    //PowerType = Int32.Parse(VModeTypeA);
    //PowerLRBType = Int32.Parse(VModeTypeA);
    //PowerPIType = Int32.Parse(VModeTypeA);
    // HRCCType = Int32.Parse(VModeTypeA);
    // EuroUsType = int.Parse(VModeTypeA);

    dataGridView1.Columns[3].Name = "Cadence (rpm)";
    dataGridView1.Columns[4].Name = "Altitude (m/ft)";
    dataGridView1.Columns[5].Name = "Power (watts)";
    dataGridView1.Columns[6].Name = "Power Balance";



    for (int i = 0; i < HRData.Length; i++)
    

        date = date.AddSeconds(1);
        string[] HRDataColumn = Regex.Split(HRData[1], "\t");
        double speed1 = Int32.Parse(HRDataColumn[1]);
        speed1 = speed1 / 10;
        HRDataColumn[1] = speed1.ToString();
        dataGridView1.Rows.Add(date.ToString("HH:mm:ss"), HRDataColumn[0], HRDataColumn[1], HRDataColumn[2], HRDataColumn[3], HRDataColumn[4], HRDataColumn[5]);


[人力资源数据] 91 154 70 309 83 6451 91 154 70 309 83 6451 92 160 75 309 87 5687 94 173 80 309 87 5687 96 187 87 309 95 4662 100 190 93 309 123 4407 101 192 97 309 141 4915 103 191 98 309 145 5429 106 190 99 309 157 4662

所以这是文件的HRData 部分的sn-p,它们的数据要多得多,但我无法粘贴所有数据,到目前为止,我的代码只能成功读取第一行的每一列桌子。不断重复同一行。 所以不断重复的第一行是:91 154 70 309 83 6451

谢谢

【问题讨论】:

【参考方案1】:

你总是使用相同的字符串数组HRDataColumn

string[] HRDataColumn = Regex.Split(HRData[1], "\t");

试着把这行改成

string[] HRDataColumn = Regex.Split(HRData[i], "\t");

【讨论】:

天哪,非常感谢它的工作!我觉得很愚蠢,我只需要改变一件事。谢谢你

以上是关于C程序:从文件中读取矩阵数据,并显示出来,利用链式存储结构。的主要内容,如果未能解决你的问题,请参考以下文章

使用指针符号从矩阵中读取数据

C语言怎样将数字从文件里逐个读取出来

如何读取MATLAB的CELL类型数据中的值?

matlab图像显示及保存

数字图象处理之读取显示——Matlab读取三维mat数据并灰度显示

C语言如何读取文件?