C(i,1)>=0&&C(i,1)<=01
a=a+1;
else if C(i,1)>=02&&C(i,1)<=04
b=b+1;
else if C(i,1)>=05&&C(i,1)<=06
c=c+1;
else if C(i,1)>=07&&C(i,1)<=09
d=d+1;
else if C(i,1)==1
你的这个条件是不是漏掉了一些值啊。。。然后C中的那个就是0,精度造成的
方法1:
syms ii
T=1000;
F=96400;
R=8314;
Ean=1410^5;
kan=65410^11;
j0an=(RT/F)kanexp(-Ean/(RT));
V=00956;
% eval(solve('V=(RT/F)asinh(ii/(444337))'))
% [ii]=solve('[ii]=V=(RT/F)asinh(ii/(444337))')
eval(solve('V=(RT/F)asinh(ii/(000812j0an))',ii))
方法2;
见 思孕 | 七级的解答
Matlab源程序代码如下:
clc
clear
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A)
%方法1: 算术平均法
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A / SUM_A;
Stand_A = A / Sum_A; % 这样也可以的
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)/n)
%方法2: 几何平均法
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A ^ (1/n);
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A / sum(Prduct_n_A))
%方法3: 特征值法求权重
[V,D] = eig(A);
Max_eig = max(max(D))
[r,c]=find(D == Max_eig , 1);
disp('特征值法求权重的结果为:');
disp( V(:,c) / sum(V(:,c)) )
%计算一致性比例CR
CI = (Max_eig - n)/(n-1);
RI=[0 00001 052 089 112 126 136 141 146 149 152 154 156 158
159];
% 这里n=2时,一定是一致矩阵,所以CI = 0,为了避免分母为0,将这里的第二个元素改为了很接近0的正数
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<010
disp('因为CR<010,所以该判断矩阵A的一致性可以接受!');
else
disp('注意:CR >=
010,因此该判断矩阵A需要进行修改!');
end
是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了
反之holdoff,表示打开这个之后,每次画图,删除以前的图,
这是因为 Matlab 调试器使用的是单线程模式,当调试过程中出现错误时,程序会立即停止执行,同时调试器会自动停止保存数据,以避免程序继续执行导致更严重的错误。因此,如果在 Matlab 调试过程中出现错误,之前运行的数据可能无法保存。
为了避免这种情况,建议在程序编写时,尽可能避免出现错误,并在程序中加入错误处理的代码,以保证程序的健壮性和稳定性。另外,也可以在程序中加入自动保存数据的代码,以便在出现错误时能够及时保存数据并恢复程序的执行。
根据代码内容和注释,似乎表达的是对于一个给定的参数组合,求出特定函数的雅可比矩阵并且算出其特值和特征向量,然后绘制特征值的实部与虚部的关系图。您的代码中有些错误。
1 第2行应该注意大小写,应该为clc而不是CLC。
2 第3行也应该注意大小写,应该为Close All而不是close all。
3 代码开头没有载入数据,因此其中的参数设置无效。您要使用代码,请首先定义这些参数的值,或者从文件中载入。
4 在构建Jacobian矩阵时,您涉及到若干个变量但却未定义,比如n、l1、Vm、C等等。请先确定它们的含义并赋值。
5 对应的A矩阵应该由4个分别为矩阵A11、A12、B11、B12的子矩阵按照行合并而成,而不是把它们放在两个方括号内的两行当中。
6 程序结尾调用的是Im1而非lm1数组,这会引起名字不存在的异常。
7 如果需要让程序顺利运行,最重要的是要保证所有符号、数字、标点等都是正确的,比如、、/、+、-等等。在您的代码中似乎有些错误的符号,所以这点需要检查。
下面是针对您的代码的修改建议,请注意审查:
```matlab
clc; close all;
%% 参数
n = 67239;
k1 = -67494;
l1 = 078 10^-3;
k2 = 1656;
l2 = 48 10^-3;
= 0447;
beta = 165 10^11;
l = 33296 10^-3;
VD = 1747;
R = 5000;
CC = linspace(1, 400, 400);
Vm = 10275;
X = 99004;
%% Initialize arrays to store real and imaginary parts of eigenvalues
Re1 = zeros(length(CC), 2);
lm1 = zeros(length(CC), 2);
%% 求雅可比矩阵
for i = 1:length(CC)
C = CC(i);
A11 = (beta / (n + X)^2) (k1 Vm sign(l1 - Vm / (n + X)) + k2 Vm sign(l2 - Vm / (n + X)) - n Vm A12 = -(beta / (n + X)) (X + k1 sign(l1 - Vm / (n + X)) + k2 sign(l2 - V / (n + X)));
B11 = Vm / (C (n + X)^2);
B12 = -(1 / C) (1 / (n + X) + 1 /);
A = [A11, A12; B11, B12];
[V, D] = eig(A);
%% 求矩阵的特征值特征向量
X = diag(D);
Re1(i, :) = real(X);
lm1(i, :) = imag(X);
end
%% Plot the real part vS the imaginary part
figure;
plot(Re1(:, 1), lm1(:, 1), 'o-', 'DisplayName', 'Eigenvalue 1');
hold on;
plot(Re1(:, 2), lm1(:, 2), 'x-', 'DisplayName', 'Eigenvalue 2');
xlabel('Real Part');
ylabel('lmaginary Part');
title('Real vs Imaginary Parts of Eigenvalues');
legend('show');
```
希望对您有帮助
以上就是关于Matlab 简单程序问题全部的内容,包括:Matlab 简单程序问题、MATLAB中程序问题、matlab怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)