disp('————从文件 AA.txt 中构造判断矩阵————');

[fid_AA, message] = fopen('AA.txt','r');

if fid_AA == -1

error('!文件打开失败!');

end

[Waa,flag] = JudgementMatrix(fid_AA);

if flag == -1

warning('文件中的比较矩阵有问题,!!!构造失败!!!');

else

disp('!!!构造成功!!!');

end

fclose(fid_AA);

这里的AA文件怎么输入数据啊?

矩阵文件的(*.txt)格式要求(共4条)

% 1 空格开头的行,回车行,注释行(见第3条)在读取时都会被忽略.

%

% 2 每个矩阵要有维数(Dimension)和序号(Sequence),其次序可以颠倒,但是不能缺项,

%   且关键字及其取值要各占一行(共4行,中间可以有空格行或空行),但关键字行尾不能有空格.

%

% 3 竖线"|"是注释标记,要独自占一行,但是不要在有效的矩阵元素行之后加竖线.

%

% 4 矩阵的元素只能用空格分开,每个元素后都可以跟空格,且空格的数量可以是任意多个.

%   但是,需要强调的是,每一行第一个元素的前面不能有空格(参照第1条)!

% JudgementMatrix 函数开始

function [judge_matrix_unitize,flag] = JudgementMatrix(fid)

judge_matrix = 0;

judge_matrix_unitize = 0;

flag = 0; % 判断矩阵构造成功的标志

LineData = IgnoreLine(fid);  % 跳到第一行有效的数据

Count = 0; % 矩阵计数器

Flag1 = 0; % 是否读取矩阵序号的开关

Flag2 = 0; % 是否读取矩阵列数的开关

Flag3 = 0; % 是否读取矩阵行数的开关

Sequence = 0; % 矩阵的序号

Dimension = 0; % 矩阵的阶

DCount = 0; % 同一文件中每个矩阵的阶数下标

LastCount = 0; % 同一文件中上一个矩阵的阶数下标

while( feof(fid) == 0 )

if strcmp(LineData, 'Sequence')

LineData = IgnoreLine(fid);

if LineData == -1

warning('已经到了文件末尾,无数据可读取!');

flag = -1;

return;

end

Sequence = str2num(LineData);

Flag1 = Flag1 + 1;

elseif strcmp(LineData, 'Dimension')

LineData = IgnoreLine(fid);

if LineData == -1

warning('已经到了文件末尾,无数据可读取!');

flag = -1;

return;

end

DCount = DCount + 1;

Dimension(DCount) = str2num(LineData);

LastCount = DCount-1;

if LastCount > 0 && Dimension(DCount) ~= Dimension(LastCount)

flag = -1;

warning('矩阵的维数不等,比较矩阵弄错了吧!');

end

Flag2 = Flag2 + 1;

end

if ( Flag1 > 1 || Flag2 > 1 )

if Flag1 > 1

c = num2str(Sequence);

c = strcat('第',c);

message = strcat(c, '个矩阵的上一个矩阵没有设置维数关键字"Dimension"!');

flag = -1;

warning(message);

return;

elseif Flag2 > 1

c = num2str(Sequence);

c = strcat('第',c);

message = strcat(c, '个矩阵的上一个矩阵没有设置序号关键字"Sequence"!');

warning(message);

flag = -1;

return;

end

elseif ( Flag1 == 0 && Flag2 ==0 )

warning('没有发现矩阵的序号或行数或列数关键字!请参考文件格式要求!');

flag = -1;

return;

elseif ( Flag1 == 1 && Flag2 == 1 )

Matrix = 0;

% 为了读分数矩阵,逐行读取再变为数值类型

for i = 1:1:Dimension(DCount)

LineData = IgnoreLine(fid);

if LineData == -1

warning('已经到了文件末尾,无数据可读取!');

flag = -1;

judge_matrix_unitize = Unitize(Matrix);

return;

end

DoubleLine = str2num(LineData);

[line_DoubleLine,colume_DoubleLine] = size(DoubleLine);

if colume_DoubleLine ~= Dimension(DCount)

flag = -1;

end

for j = 1:1:colume_DoubleLine

Matrix(i,j) = DoubleLine(j);

end

end

if flag == -1

judge_matrix_unitize = Unitize(Matrix);

return;

end

if isreal(Matrix)

Count = Count + 1;

if Sequence ~= Count

c = num2str(Sequence);

c = strcat('文件中编号为',c);

message = strcat(c,'的矩阵的序号没有按照顺序排列!');

warning(message);

end

% 最大特征值及其对应的特征向量

[vector_lmd_max,lmd_max(Count)] = MaxEV(Matrix);

for j = 1:1:Dimension(DCount)

judge_matrix(Count,j) = vector_lmd_max(j);

end

% 一致性检验

CI(Count) = 0; % 一致性指标

% 当矩阵的阶数 n < 3 时,判断矩阵永远具有完全一致性。

if  Dimension >= 3

% 一致性指标

CI(Count) = ( lmd_max(Count) - Dimension(DCount) ) / ( Dimension(DCount) - 1 );

if CI(Count) >= 0.1

c = num2str(Sequence);

c = strcat('第',c);

message = strcat(c,'个矩阵的一致性指标CI不满足条件,建议调整该矩阵元素!');

warning(message);

flag = -1;

break;

end

end

else

c = num2str(Sequence);

c = strcat('第',c);

message = strcat(c, '个矩阵不是实矩阵吧?');

flag = -1;

warning(message);

return;

end

Matrix = 0; % 矩阵清零

Flag1 = 0; % 是否读取矩阵的开关复位

Flag2 = 0; % 是否读取矩阵的开关复位

end

LineData = IgnoreLine(fid);

end

if flag == -1 || Dimension(DCount) ~= Count

flag = -1;

disp('未进行归一化的特征向量');

judge_matrix = judge_matrix'

% 特征向量归一化

disp('归一化的特征向量');

judge_matrix_unitize = Unitize(judge_matrix)

else

flag = 1;

judge_matrix = judge_matrix';

% 判断矩阵归一化

disp('归一化后的特征向量构成的判断矩阵');

judge_matrix_unitize = Unitize(judge_matrix)

end

% JudgementMatrix 函数结束

能给个样板不?我实在不知道在文档里输入哪些数据怎么输,谢谢!

anp的matlab程序实现,在matlab上实现ANP,如何输入矩阵的M文件相关推荐

  1. 网络matlab程序_【Matlab】官网资源盘点

    相关链接: 一个单身男博士的业余生活:技多不压身,解数独也可撩妹 手把手 | 使用 MATLAB 图像处理与深度学习解算数独 基于Matlab的杨氏双缝干涉实验模拟 基于Matlab的二维正方晶体马德 ...

  2. 艾特肯法方程解matlab程序,牛顿迭代法matlab代码

    牛顿法 迭代公式: x(k1) xk [2 f (x(k) )]1f (x(k) ) Matlab 代码: function [x1,k] =newton(x1,eps) hs=inline('(x ...

  3. matlab程序圆形牛栏,Matlab课本计算题.doc

    Matlab课本计算题 Matlab计算题: 农夫老李有一个半径为10m的圆形牛栏,里面长满了草,老李要将家里的一头牛拴在牛栏边的一根栏桩上,要求只让牛吃到圆形牛栏中的一半的草,请问栓牛鼻的绳子应为多 ...

  4. 牛顿迭代法解线性方程matlab程序,牛顿迭代法matlab程序(解线性方程组)

    <牛顿迭代法matlab程序(解线性方程组)>由会员分享,可在线阅读,更多相关<牛顿迭代法matlab程序(解线性方程组)(4页珍藏版)>请在金锄头文库上搜索. 1.牛顿迭代法 ...

  5. python调用matlab程序_Python调用MATLAB实现fmincon函数

    motivation: 1.要实现"符号几何规划"的功能,使用MATLAB自带的fmincon函数来实现 2.工程的代码是通过Python来完成的,需要Python调用MATLAB ...

  6. bfgs算法matlab程序,bfgs算法matlab代码

    (对 Large -scale 问题) 对应文件 \\toolbox\\matlab\\funfun\\fminbnd.m \\toolbox\\optim\\sfminbx.m \\toolbox\ ...

  7. 微分matlab程序,数值微分及其matlab程序.doc

    数值微分及其matlab程序.doc 第八章数值微分1282一阶导数的数值计算及其MATLAB程序821差商求导及其MATLAB程序例821设215SINXF(1)分别利用前差公式和后差公式计算的 ...

  8. 五步移相法matlab程序_用MATLAB软件对逆变电路移相调压进行仿真,30°,60°,90°的波形,并用分段分析法分析其原理_学小易找答案...

    [简答题]Translate the following ad into (1) a TV comercial, and (2) a factual introduction. Marie Franc ...

  9. 五步移相法matlab程序_用MATLAB仿真相移键控

    MATLAB 仿真实验报告 题目: 相移键控仿真( Phase Shift Keying Simulation ) 一.初始化变量: 对样本变量进行初始化,包括每一个符号,符号的数值,字长,还有性噪比 ...

最新文章

  1. Tensorflow之调试(Debug) tf.py_func()
  2. linux飞信机器人的安装fetion
  3. 基于matplotlib的数据可视化 - 热图imshow
  4. webService学习4:客户端调用服务端的代码
  5. Intellij idea导入项目时没有目录结构
  6. NOIP2016洛谷P1600:天天爱跑步
  7. android 回车键事件编程
  8. mac升级10.12后,安全和隐私中没有了安装任何来源的选项的解决办法
  9. 设置、获得对话框中 编辑框控件 EDIT 的内容
  10. 计算机信息处理技术的易混淆知识点,【考试经验】计算机等级考试二级VisualFoxPro笔试易混淆的知识点...
  11. python编的俄罗斯方块游戏_Python编写俄罗斯方块小游戏
  12. 携程校招编程题 bit count
  13. css里面的after_css after是什么?
  14. join有哪几种方式?内外连接有什么区别?
  15. [毒]QQ空间出现的伪装QQ登录窗口诈骗
  16. 网易云音乐黑胶会员免费领取
  17. 009.查找手机电话簿【散列表】
  18. 记事本字符编码没有Unicode选项
  19. 游戏鼠标的dpi测试软件,自己就可以测试鼠标的DPI
  20. 注意力机制详解(Attention详解)

热门文章

  1. SD-WAN如何帮助改善企业SaaS应用访问?
  2. C++: Left-pad(团体程序设计天梯赛)
  3. java update()方法代码_Java Datastore.update方法代码示例
  4. exceljs导出单元格设置列宽、文字居中
  5. 101. 对称二叉树
  6. ssh2java传输文件_使用ganymed-ssh2包的java scp文件
  7. Go 1.17 RC2发布 | Gopher Daily (2021.08.03) ʕ◔ϖ◔ʔ
  8. 【LeetCode-SQL】1709. 访问日期之间最大的空档期
  9. 怎样将PDF转换成CAD
  10. (附源码)SSM新闻类网站JAVA计算机毕业设计项目