当前位置: 首页 > news >正文

秒收录网站有哪些东方财富网官方网站首页

秒收录网站有哪些,东方财富网官方网站首页,263企业邮箱注册入口,wordpress页面找不到404文章目录前言Matrix MarketMatlab IORead dataWrite data测试C IORead and write dataDownload MatrixIO 代码下载参考网址前言 一般情况集成了一个线性求解器#xff08;Axb#xff09;#xff0c;我们需要验证其性能和精度#xff0c;这时需要大量数据来做验证#xff… 文章目录前言Matrix MarketMatlab IORead dataWrite data测试C IORead and write dataDownload MatrixIO 代码下载参考网址前言 一般情况集成了一个线性求解器Axb我们需要验证其性能和精度这时需要大量数据来做验证 尤其是有不同性质的矩阵 AAA 的数据例如稀疏性 对称性 正定性 对角占优等。 Matrix Market Matrix Market Matrix Market 网站提供了友好的接口和数据 方便我们验证求解器的精度和性能尤其是对各种性质的矩阵 AAA 都有很多数据 包含不同维数。 Matlab IO Read data function [A,rows,cols,entries,rep,field,symm] mmread(filename) % % function [A] mmread(filename) % % function [A,rows,cols,entries,rep,field,symm] mmread(filename) % % Reads the contents of the Matrix Market file filename % into the matrix A. A will be either sparse or full, % depending on the Matrix Market format indicated by % coordinate (coordinate sparse storage), or % array (dense array storage). The data will be duplicated % as appropriate if symmetry is indicated in the header. % % Optionally, size information about the matrix can be % obtained by using the return values rows, cols, and % entries, where entries is the number of nonzero entries % in the final matrix. Type information can also be retrieved % using the optional return values rep (representation), field, % and symm (symmetry). %mmfile fopen(filename,r); if ( mmfile -1 )disp(filename);error(File not found); end;header fgets(mmfile); if (header -1 )error(Empty file.) end% NOTE: If using a version of Matlab for which strtok is not % defined, substitute gettok for strtok in the % following lines, and download gettok.m from the % Matrix Market site. [head0,header] strtok(header); % see note above [head1,header] strtok(header); [rep,header] strtok(header); [field,header] strtok(header); [symm,header] strtok(header); head1 lower(head1); rep lower(rep); field lower(field); symm lower(symm); if ( length(symm) 0 )disp([Not enough words in header line of file ,filename]) disp(Recognized format: )disp(%%MatrixMarket matrix representation field symmetry)error(Check header line.) end if ( ~ strcmp(head0,%%MatrixMarket) )error(Not a valid MatrixMarket header.) end if ( ~ strcmp(head1,matrix) )disp([This seems to be a MatrixMarket ,head1, file.]);disp(This function only knows how to read MatrixMarket matrix files.);disp( );error( ); end% Read through comments, ignoring themcommentline fgets(mmfile); while length(commentline) 0 commentline(1) %,commentline fgets(mmfile); end% Read size information, then branch according to % sparse or dense formatif ( strcmp(rep,coordinate)) % read matrix given in sparse % coordinate matrix format[sizeinfo,count] sscanf(commentline,%d%d%d);while ( count 0 )commentline fgets(mmfile);if (commentline -1 )error(End-of-file reached before size information was found.)end[sizeinfo,count] sscanf(commentline,%d%d%d);if ( count 0 count ~ 3 )error(Invalid size specification line.)endendrows sizeinfo(1);cols sizeinfo(2);entries sizeinfo(3);if ( strcmp(field,real) ) % real valued entries:[T,count] fscanf(mmfile,%f,3);T [T; fscanf(mmfile,%f)];if ( size(T) ~ 3*entries )message ...str2mat(Data file does not contain expected amount of data.,...Check that number of data lines matches nonzero count.);disp(message);error(Invalid data.);endT reshape(T,3,entries);A sparse(T(:,1), T(:,2), T(:,3), rows , cols);elseif ( strcmp(field,complex)) % complex valued entries:T fscanf(mmfile,%f,4);T [T; fscanf(mmfile,%f)];if ( size(T) ~ 4*entries )message ...str2mat(Data file does not contain expected amount of data.,...Check that number of data lines matches nonzero count.);disp(message);error(Invalid data.);endT reshape(T,4,entries);A sparse(T(:,1), T(:,2), T(:,3) T(:,4)*sqrt(-1), rows , cols);elseif ( strcmp(field,pattern)) % pattern matrix (no values given):T fscanf(mmfile,%f,2);T [T; fscanf(mmfile,%f)];if ( size(T) ~ 2*entries )message ...str2mat(Data file does not contain expected amount of data.,...Check that number of data lines matches nonzero count.);disp(message);error(Invalid data.);endT reshape(T,2,entries);A sparse(T(:,1), T(:,2), ones(entries,1) , rows , cols);endelseif ( strcmp(rep,array) ) % read matrix given in dense % array (column major) format[sizeinfo,count] sscanf(commentline,%d%d);while ( count 0 )commentline fgets(mmfile);if (commentline -1 )error(End-of-file reached before size information was found.)end[sizeinfo,count] sscanf(commentline,%d%d);if ( count 0 count ~ 2 )error(Invalid size specification line.)endendrows sizeinfo(1);cols sizeinfo(2);entries rows*cols;if ( strcmp(field,real) ) % real valued entries:A fscanf(mmfile,%f,1);A [A; fscanf(mmfile,%f)];if ( strcmp(symm,symmetric) | strcmp(symm,hermitian) | strcmp(symm,skew-symmetric) ) for j1:cols-1,currenti j*rows;A [A(1:currenti); zeros(j,1);A(currenti1:length(A))];endelseif ( ~ strcmp(symm,general) )disp(Unrecognized symmetry)disp(symm)disp(Recognized choices:)disp( symmetric)disp( hermitian)disp( skew-symmetric)disp( general)error(Check symmetry specification in header.);endA reshape(A,rows,cols);elseif ( strcmp(field,complex)) % complx valued entries:tmpr fscanf(mmfile,%f,1);tmpi fscanf(mmfile,%f,1);A tmprtmpi*i;for j1:entries-1tmpr fscanf(mmfile,%f,1);tmpi fscanf(mmfile,%f,1);A [A; tmpr tmpi*i];endif ( strcmp(symm,symmetric) | strcmp(symm,hermitian) | strcmp(symm,skew-symmetric) ) for j1:cols-1,currenti j*rows;A [A(1:currenti); zeros(j,1);A(currenti1:length(A))];endelseif ( ~ strcmp(symm,general) )disp(Unrecognized symmetry)disp(symm)disp(Recognized choices:)disp( symmetric)disp( hermitian)disp( skew-symmetric)disp( general)error(Check symmetry specification in header.);endA reshape(A,rows,cols);elseif ( strcmp(field,pattern)) % pattern (makes no sense for dense)disp(Matrix type:,field)error(Pattern matrix type invalid for array storage format.);else % Unknown matrix typedisp(Matrix type:,field)error(Invalid matrix type specification. Check header against MM documentation.);end end% % If symmetric, skew-symmetric or Hermitian, duplicate lower % triangular part and modify entries as appropriate: %if ( strcmp(symm,symmetric) )A A A. - diag(diag(A));entries nnz(A); elseif ( strcmp(symm,hermitian) )A A A - diag(diag(A));entries nnz(A); elseif ( strcmp(symm,skew-symmetric) )A A - A;entries nnz(A); endfclose(mmfile); % Done. Write data function [ err ] mmwrite(filename,A,comment,field,precision) % % Function: mmwrite(filename,A,comment,field,precision) % % Writes the sparse or dense matrix A to a Matrix Market (MM) % formatted file. % % Required arguments: % % filename - destination file % % A - sparse or full matrix % % Optional arguments: % % comment - matrix of comments to prepend to % the MM file. To build a comment matrix, % use str2mat. For example: % % comment str2mat( Comment 1 ,... % Comment 2,... % and so on.,... % to attach a date:,... % [ ,date]); % If ommitted, a single line date stamp comment % will be included. % % field - real % complex % integer % pattern % If ommitted, data will determine type. % % precision - number of digits to display for real % or complex values % If ommitted, full working precision is used. %if ( nargin 5) precision 16; elseif ( nargin 4) precision 16; elseif ( nargin 3) mattype real; % placeholder, will check after FIND-ing Aprecision 16; elseif ( nargin 2) comment ;% Check whether there is an imaginary part:mattype real; % placeholder, will check after FIND-ing Aprecision 16; endmmfile fopen([filename],w); if ( mmfile -1 )error(Cannot open file for output); end;[M,N] size(A);%%%%%%%%%%%%% This part for sparse matrices %%%%%%%%%%%%%%%% if ( issparse(A) )[I,J,V] find(A);if ( sum(abs(imag(nonzeros(V)))) 0 )Vreal 0; else Vreal 1; endif ( ~ strcmp(mattype,pattern) Vreal )mattype real; elseif ( ~ strcmp(mattype,pattern) )mattype complex;end % % Determine symmetry: %if ( M ~ N )symm general;issymm 0;NZ length(V);elseissymm 1;NZ length(V);for i1:NZif ( A(J(i),I(i)) ~ V(i) )issymm 0;break;endendif ( issymm )symm symmetric;ATEMP tril(A);[I,J,V] find(ATEMP);NZ nnz(ATEMP);elseisskew 1;for i1:NZif ( A(J(i),I(i)) ~ - V(i) )isskew 0;break;endendif ( isskew )symm skew-symmetric;ATEMP tril(A);[I,J,V] find(ATEMP);NZ nnz(ATEMP);elseif ( strcmp(mattype,complex) )isherm 1;for i1:NZif ( A(J(i),I(i)) ~ conj(V(i)) )isherm 0;break;endendif ( isherm )symm hermitian;ATEMP tril(A);[I,J,V] find(ATEMP);NZ nnz(ATEMP);else symm general;NZ nnz(A);endelsesymm general;NZ nnz(A);endendend% Sparse coordinate format:rep coordinate;fprintf(mmfile,%%%%MatrixMarket matrix %s %s %s\n,rep,mattype,symm);[MC,NC] size(comment);if ( MC 0 )fprintf(mmfile,%% Generated %s\n,[date]);elsefor i1:MC,fprintf(mmfile,%%%s\n,comment(i,:));endendfprintf(mmfile,%d %d %d\n,M,N,NZ);cplxformat sprintf(%%d %%d %% .%dg %% .%dg\n,precision,precision);realformat sprintf(%%d %%d %% .%dg\n,precision);if ( strcmp(mattype,real) )for i1:NZfprintf(mmfile,realformat,I(i),J(i),V(i));end;elseif ( strcmp(mattype,complex) )for i1:NZfprintf(mmfile,cplxformat,I(i),J(i),real(V(i)),imag(V(i)));end;elseif ( strcmp(mattype,pattern) )for i1:NZfprintf(mmfile,%d %d\n,I(i),J(i));end;else err -1;disp(Unsupported mattype:)mattypeend;%%%%%%%%%%%%% This part for dense matrices %%%%%%%%%%%%%%%% elseif ( sum(abs(imag(nonzeros(A)))) 0 )Areal 0; else Areal 1; endif ( ~strcmp(mattype,pattern) Areal )mattype real;elseif ( ~strcmp(mattype,pattern) )mattype complex;end % % Determine symmetry: %if ( M ~ N )issymm 0;symm general;elseissymm 1;for j1:N for ij1:Nif (A(i,j) ~ A(j,i) )issymm 0; break; endendif ( ~ issymm ) break; endendif ( issymm )symm symmetric;elseisskew 1;for j1:N for ij1:Nif (A(i,j) ~ - A(j,i) )isskew 0; break; endendif ( ~ isskew ) break; endendif ( isskew )symm skew-symmetric;elseif ( strcmp(mattype,complex) )isherm 1;for j1:N for ij1:Nif (A(i,j) ~ conj(A(j,i)) )isherm 0; break; endendif ( ~ isherm ) break; endendif ( isherm )symm hermitian;else symm general;endelsesymm general;endendend% Dense array format:rep array;[MC,NC] size(comment);fprintf(mmfile,%%%%MatrixMarket matrix %s %s %s\n,rep,mattype,symm);for i1:MC,fprintf(mmfile,%%%s\n,comment(i,:));end;fprintf(mmfile,%d %d\n,M,N);cplxformat sprintf(%% .%dg %% .%dg\n, precision,precision);realformat sprintf(%% .%dg\n, precision);if ( ~ strcmp(symm,general) )rowloop j;else rowloop 1;endif ( strcmp(mattype,real) )for j1:Nfor ieval(rowloop):Mfprintf(mmfile,realformat,A(i,j));endendelseif ( strcmp(mattype,complex) )for j1:Nfor ieval(rowloop):Mfprintf(mmfile,cplxformat,real(A(i,j)),imag(A(i,j)));endendelseif ( strcmp(mattype,pattern) )err -2disp(Pattern type inconsistant with dense matrix)elseerr -2disp(Unknown matrix type:)mattypeend endfclose(mmfile); 测试 % 读取 bcsstk14.mtx 的矩阵信息存储于矩阵 A 中 rows cols 分别是行列 [A,rows,cols,entries,rep,field,symm] mmread(bcsstk14.mtx); % 将矩阵 A 写到 data.txt 文件中 mmwrite(data.txt, A, field) [A2,rows,cols,entries,rep,field,symm] mmread(data.txt); error A - A2; error_norm norm(error, 2) C IO 在 网址 C IO 下载 mmio.h 和 mmio.c 文件 Read and write data #include iostream #include fstream #include cstdio #include cstdlib #include string.h #include stdlib.h #include string #include map #include mmio.h #include stdio.husing namespace std;int main(int argc, char *argv[]) { #if 1// read datastring fileName ../data/bcsstk14.mtx; int ret_code;MM_typecode matcode;FILE *f;int M, N, nz; int i, *I, *J;double *val;mapunsigned int, mapunsigned int, double A; // Storage in triplet mode row col val ; As id from zeroif ((f fopen(fileName.c_str(), r)) NULL) {cerrread file error, please check.endl;exit(1);}if (mm_read_banner(f, matcode) ! 0){printf(Could not process Matrix Market banner.\n);exit(1);}/* This is how one can screen matrix types if their application *//* only supports a subset of the Matrix Market data types. */if (mm_is_complex(matcode) mm_is_matrix(matcode) mm_is_sparse(matcode) ) {printf(Sorry, this application does not support );printf(Market Market type: [%s]\n, mm_typecode_to_str(matcode));exit(1);}/* find out size of sparse matrix .... */if ((ret_code mm_read_mtx_crd_size(f, M, N, nz)) !0) {exit(1);}/* reseve memory for matrices */I (int *) malloc(nz * sizeof(int));J (int *) malloc(nz * sizeof(int));val (double *) malloc(nz * sizeof(double));/* NOTE: when reading in doubles, ANSI C requires the use of the l *//* specifier as in %lg, %lf, %le, otherwise errors will occur *//* (ANSI C X3.159-1989, Sec. 4.9.6.2, p. 136 lines 13-15) */for (i0; inz; i) {fscanf(f, %d %d %lg\n, I[i], J[i], val[i]);I[i]--; /* adjust from 1-based to 0-based */J[i]--;}if (f ! stdin) {fclose(f);}/************************//* now write out matrix *//************************/mm_write_banner(stdout, matcode);mm_write_mtx_crd_size(stdout, M, N, nz);for (i0; inz; i) {//fprintf(stdout, %d %d %20.19g\n, I[i]1, J[i]1, val[i]);A[I[i]][J[i]] val[i];}#endif#if 0// write dataconst int nz 4;const int M 10;const int N 10;MM_typecode matcode; int I[nz] { 0, 4, 2, 8 };int J[nz] { 3, 8, 7, 5 };double val[nz] {1.1, 2.2, 3.2, 4.4};int i;mm_initialize_typecode(matcode);mm_set_matrix(matcode);mm_set_coordinate(matcode);mm_set_real(matcode);mm_write_banner(stdout, matcode); mm_write_mtx_crd_size(stdout, M, N, nz);/* NOTE: matrix market files use 1-based indices, i.e. first elementof a vector has index 1, not 0. */for (i0; inz; i) {fprintf(stdout, %d %d %10.3g\n, I[i]1, J[i]1, val[i]);} #endifreturn 0; } Download Matrix 在网址的主页面可以看到 Search by matrix properties 在之后的红色框中选择所需要的矩阵性质 回车即可。 最后利用前面介绍的 IO 的代码 即可把矩阵导入到自己的线性求解器中 作为验证。 IO 代码下载 以上的所有代码包括一个测试的例子均可以到我的 GitHub 网页下载其中包含 MakeFile文件。 参考网址 Matrix Market https://math.nist.gov/MatrixMarket/
http://www.w-s-a.com/news/465614/

相关文章:

  • 学做衣服上什么网站好贴吧高级搜索
  • 贵州 跨境电商网站建设做淘宝店铺有哪些好的网站
  • 广州正规网站制作公司网站搭建公司
  • ui设计零基础好学吗珠海网站建设优化推广
  • 网站开发多少费用火车头采集wordpress发布时间
  • 有没有做皮艺的网站教育培训网站建设ppt
  • 建设外贸商城网站制作如何建设景区旅游网站
  • 网站建设服务的具体条件怎么建设一个响应式网站
  • 做flash的网站wordpress设置前台投稿
  • 商务网站开发文档迅雷资源做下载网站
  • 无极磁铁网站如何把地图放到自己做的网站上
  • 青浦赵巷网站建设公司网站开发需求文档
  • 苏州网站建设的公司哪家好无锡网站制作那些
  • 装饰公司网站模板科技成果鉴定机构
  • 给公司做的东西放到私人网站上十堰为企业做网站的单位
  • 手机网站建设价钱手机自己做网站
  • 网站建设属于哪种公司电子商务查询网站
  • 工程建设标准强制性条文最新版本网站关键词排名优化应该怎么做
  • 网站网页设计内容品牌高端网站建设公司
  • 网站开发报价 福州中国建筑网官网手机版
  • 网站 图片 自动往右移专门做定制化的网站
  • 最好用的cms手机百度关键词排名 网站优化软件
  • 凉山州城乡规划建设局网站长沙网站建设哪家强
  • 广州网站开发创意设计公司企业自己怎么制作网站首页
  • 曲靖 曲靖网站建设软件(app)开发wordpress 没有远程发布
  • 官方网站开发与定制网站建设技术是干嘛的
  • 昆明网站建设工作室网站菜单导航怎么做的
  • 南京网站做的好的公司猪八戒网站做推广怎么样
  • 建站收费标准福州网站搭建
  • 做防护用品的网站欧美网站建设风格特点