书接上文用C语言实现一个矩阵,
最直接的方案就是通过数字、空格和逗号,例如

1 2 3,4 5 6, 7 8 9

即可用来代表

[ 1 2 3 4 5 6 7 8 9 ] \begin{bmatrix} 1&2&3\\4&5&6\\7&8&9 \end{bmatrix} ⎣⎡​147​258​369​⎦⎤​

考虑到在矩阵运算时可能会产生的歧义,即

1 2, 3 4 + 5

这代码无法解释,故为其加上一层括号,用[a b, c d]来创建数值矩阵。

简单起见,第一版程序要求矩阵必须通过数值来创建,从而避免了递归的麻烦。

Matrix* NumMatrix(char *str){int row = 0;int nCols[MAXLEN];nCols[0] = 1;double* data = (double*)malloc(sizeof(double)*MAXLEN);int i = 0;if(str[i++]!='[')return NULL;int start = i;int j = 0;      //data的iterchar* temp = (char*)malloc(sizeof(char)*MAXLEN);while(str[i]!=']'){temp[i-start] = str[i];if(str[i]==',' || str[i]==' '){if(str[i]==','){row += 1;nCols[row] = 1;}elsenCols[row]+=1;temp[i-start] = '\0';data[j++] = atof(temp);start = i+1;}i++;}temp[i-start]='\0';data[j] = atof(temp);for(i = 1; i < row; i++){if(nCols[i-1]!=nCols[i]){return NULL;}}row++;int col = nCols[0];Matrix* mat = SetBase(mat);for (i = 0; i < mat->size; i++){mat->data[i] = data[i];}return mat;
}

main函数写为

int main(){char str[MAXLEN];Matrix* mat;while (1){printf("please input Numbers:");gets(str);mat = NumMatrix(str);printMat(mat);}
}

测试如下:

please input Numbers:[1 2,3 4,5 6]
mat:2x3=6
1.000000,2.000000,
3.000000,4.000000,
5.000000,6.000000,
please input Numbers:

C语言根据数字创建矩阵相关推荐

  1. R语言入门之创建数据集——向量、矩阵、数组、数据框和列表

    码字不易,转发请注明出处:http://blog.csdn.net/qq_28945021/article/details/52100765 摘要 随着大数据的火爆发展,适合数据分析及生成图表的R语言 ...

  2. R语言使用单个向量创建矩阵数据、通过byrow参数指定从向量转化为矩阵的过程中的数据排布方式

    R语言使用单个向量创建矩阵数据.通过byrow参数指定从向量转化为矩阵的过程中的数据排布方式 目录 R语言使用单个向量创建矩阵数据.通过byrow参数指定从向量转化为矩阵的过程中的数据排布方式 R语言 ...

  3. R语言 创建矩阵的方式

    > matrix(data=c(1,2,3,4,5,6),nrow=2,ncol=3)[,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6> matrix(data=c ...

  4. c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解

    C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...

  5. 如何在R语言中建立六边形矩阵热图heatmap可视化

    原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...

  6. R语言实战(创建数据集)

    创建数据集 什么叫数据集? 数据集通常是由数据构成的矩形数组,行表示观测,列表示变量 如下面的病例数据集 patientID age diabetes status 1 1 25 Type1 Poor ...

  7. r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组

    从零开始学R语言Day4|向量.矩阵和数组 1.1向量 1.1.1向量 在Day2中我们提及过用和c()函数来构建向量,具体实例如下. 我们还可以采用vector("类型",长度) ...

  8. python创建矩阵_python中Numpy的属性与创建矩阵

    本篇文章给大家带来的内容是关于python中Numpy的属性与创建矩阵,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. ndarray.ndim:维度 ndarray.shape:形状 ...

  9. rstudio创建矩阵_R中的矩阵

    rstudio创建矩阵 Matrices are a very important concept in R programming, mostly used for statistics and d ...

最新文章

  1. 写给未来产品总监的一封信
  2. 部署文档撰写经验分享
  3. spring+mybatis之声明式事务管理初识(小实例)
  4. 1. 观察者模式总结(C++)
  5. MySQL 常见的开放性问题
  6. ubuntu下用vagrant搭建集群环境
  7. xcode_8正式版安装遇到的小问题
  8. 本训练中心主任致互联网技术学员
  9. batch normalization的原理和作用_【推荐算法】Deep amp; Cross Network模型原理和实践...
  10. ATMV1函数版v1
  11. 快速启动无法识别U盘启动盘。bios无法识别U盘启动盘
  12. 具有引导性的移动应用界面设计模式
  13. O2O模式发展迅速的原因 o2o模式成功的原因是什么?
  14. Android开发-视图view讲解
  15. Arranging The Sheep 中位数定理
  16. 网上教学系统mysql课程设计_基于学生信息管理系统的数据库系统课程设计(MySQL)...
  17. get与post的解释与区别
  18. 2017年最新基于hexo搭建个人免费博客——从零开始
  19. 莫圣宏:4.30黄金开启跌势,黑色星期五黄金操作建议!
  20. 最大流与最小割(Maxflow与Mincut)

热门文章

  1. git新建分支并切换分支
  2. 华为P6刷机包 移动版 基于EmotionUI B508适配 MIUI V5 4.9.22发布 更新优化
  3. goland常用配置
  4. Goland 配置 gofmt
  5. 辅助设计是用计算机进行绘图和过程设计,计算机辅助设计与制造复习题
  6. 高斯消元法 Gauss
  7. JS教程之 ElectronJS 自定义标题栏
  8. MindManager2020密钥思维导图学习方法使用教程
  9. html js 扇形统计图_Html5饼图绘制实现统计图的方法
  10. Detours学习之十:用于查找目标函数的api