C语言根据数字创建矩阵
书接上文用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} ⎣⎡147258369⎦⎤
考虑到在矩阵运算时可能会产生的歧义,即
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语言根据数字创建矩阵相关推荐
- R语言入门之创建数据集——向量、矩阵、数组、数据框和列表
码字不易,转发请注明出处:http://blog.csdn.net/qq_28945021/article/details/52100765 摘要 随着大数据的火爆发展,适合数据分析及生成图表的R语言 ...
- R语言使用单个向量创建矩阵数据、通过byrow参数指定从向量转化为矩阵的过程中的数据排布方式
R语言使用单个向量创建矩阵数据.通过byrow参数指定从向量转化为矩阵的过程中的数据排布方式 目录 R语言使用单个向量创建矩阵数据.通过byrow参数指定从向量转化为矩阵的过程中的数据排布方式 R语言 ...
- 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 ...
- c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解
C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...
- 如何在R语言中建立六边形矩阵热图heatmap可视化
原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...
- R语言实战(创建数据集)
创建数据集 什么叫数据集? 数据集通常是由数据构成的矩形数组,行表示观测,列表示变量 如下面的病例数据集 patientID age diabetes status 1 1 25 Type1 Poor ...
- r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组
从零开始学R语言Day4|向量.矩阵和数组 1.1向量 1.1.1向量 在Day2中我们提及过用和c()函数来构建向量,具体实例如下. 我们还可以采用vector("类型",长度) ...
- python创建矩阵_python中Numpy的属性与创建矩阵
本篇文章给大家带来的内容是关于python中Numpy的属性与创建矩阵,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. ndarray.ndim:维度 ndarray.shape:形状 ...
- rstudio创建矩阵_R中的矩阵
rstudio创建矩阵 Matrices are a very important concept in R programming, mostly used for statistics and d ...
最新文章
- 写给未来产品总监的一封信
- 部署文档撰写经验分享
- spring+mybatis之声明式事务管理初识(小实例)
- 1. 观察者模式总结(C++)
- MySQL 常见的开放性问题
- ubuntu下用vagrant搭建集群环境
- xcode_8正式版安装遇到的小问题
- 本训练中心主任致互联网技术学员
- batch normalization的原理和作用_【推荐算法】Deep amp; Cross Network模型原理和实践...
- ATMV1函数版v1
- 快速启动无法识别U盘启动盘。bios无法识别U盘启动盘
- 具有引导性的移动应用界面设计模式
- O2O模式发展迅速的原因 o2o模式成功的原因是什么?
- Android开发-视图view讲解
- Arranging The Sheep 中位数定理
- 网上教学系统mysql课程设计_基于学生信息管理系统的数据库系统课程设计(MySQL)...
- get与post的解释与区别
- 2017年最新基于hexo搭建个人免费博客——从零开始
- 莫圣宏:4.30黄金开启跌势,黑色星期五黄金操作建议!
- 最大流与最小割(Maxflow与Mincut)