首页 > 编程知识 正文

matlab乘法出错,matlab基于问题求解

时间:2023-05-06 20:51:47 阅读:254096 作者:210

基本语句结构

函数调用

[返回变量列表]=函数名(输入变量列表)

向量和矩阵生成

v=1:1:3 (中间的1可省略)

T=[1,2,3;4,5,6;v](T是3×3的矩阵,最后一行是刚才定义的v: 1,2,3)

L=zeros(n,m)

子矩阵提取

B=A(v1:v2)

v1向量表示子矩阵要包含的行号构成的向量,v2表示要包含的列号构成的向量。:表示要提取所有的行

循环结构

for语句

for i=V,循环结构体,end

在for循环结构中,V为一个向量,循环变量i每次从V向量中取一个数值,执行一次循环体的内容,如此下去,直至执行完V向量中所有的分量。

while循环

while (条件式),循环结构体,end

if结构

其一般结构为

if (条件1) % 如果条件1满足,则执行下面的段落1

语句组1 %这里也可以嵌套下级的if结构

elseif (条件2) %否则如果满足条件2,则执行下面的段落2

语句组2

… %可以按照这样的结构设置多种转移条件

else %上面的条件均不满足时,执行下面的段落

语句组n+1

end

开关结构

switch 开关表达式

case 表达式1

语句段1

case {表达式2,表达式3,…,表达式m}

语句段2

otherwise

语句段n

end

函数结构

function [返回变量列表]=函数名(输入变量列表)

注释说明语句段,由%引导

输入、返回变量格式的检测

函数体语句

说明:

1.这里输入和返回变量的实际个数分别由nargin和nargout给出。

2.返回变量如果多于1个,则应用方括号将它们括起来,否则可省去方括号。输入变量之间用逗号分隔,返回变量用逗号或空格分隔。

3.函数可递归调用

可变输入输出个数的处理

所有的输入变量列表由单元变量varargin表示。

inline函数

时为了描述某个数学函数的方便,可以用inline()函数来直接编写该函数,形式相当于M-函数,但无编写一个真正的MATLAB文件,就可以描述出某种数学关系。其调用格式为fun=inline(‘函数内容’,自变量列表)

自设常数

eps 机器的浮点运算误差限。

PC机上eps的默认值为2.2204*10^-16,mhdggx个量的绝对值小于eps,则可以认为这个量为0。

i和j 若i或j量不被改写,则它们表示纯虚数量j。

如果改写后想恢复该变量,则可以用语句i=sqrt(-1)设置,即对-1求平方根。

Inf 无穷大,也可以写成inf。-∞可以表示为-Inf。

NaN 不定式(not a number),通常由0/0运算、Inf/Inf及其他可能的运算得出。 NaN是一个很奇特的量,如NaN与Inf的乘积仍为NaN。

pi 圆周率π的双精度浮点表示。

lasterr 存放最新一次的错误信息。

此变量为字符串型,如果在本次执行过程中没出现这错误,则此变量为空字符串。

lastwarn 存放最新的警告信息。若未出现过警告,则此变量为空字符串。

ans 存放最近一次无赋值变量语句的运算结果。

end 最后一行(列)

nargin 函数输入变量的实际个数

nargout 函数返回变量的实际个数

结果输出txt

name=['i',num2str(I0),'Hc',num2str(H0),'Happ',num2str(Happl),'.txt'];

%文件名,num2str()函数用来在字符串中嵌入数据。

fid = fopen(name,'wt+');

%定义路径和写入方式,其中

'r' : Open file for reading (default).

'w' : Open file, or create new file, for writing; discard existing contents, if any.

'a' : Open file, or create new file, for writing; append data to the end of the file.

'r+': Open file for reading and writing.

'w+': Open file, or create a new file, for reading and writing; discard existing contents, if any.

'a+': Open file, or create new file, for reading and writing; append data to the end of the file.

'A' : Append without automatic flushing; used with tape drives

'W' : Write without automatic flushing; used with tape drives

加"t"表示文本格式。

fprintf(fid, '%.3g tape, %.4g * %.4g mm^2, with distance %.3g mm, under %.10g Gauss field./n', N, length, thick, distance, Happl);

fprintf(fid, 'current density without any even self-field J0=%.2e./n', J0);

fprintf(fid, '/nkim constants (J=alpha/(H+H0))/n');

fprintf(fid, 'pinning force alpha=%.2e;/n', JH);

fprintf(fid, 'character field H0=%.8g./n', H0);

fprintf(fid, 'total current under self field I=%.2e/n', I);

fprintf(fid, 'appearent current density J=I/S=%.2e/n', Jscale);

%文件的抬头,以最后一行为例,结果输出是:"appearent current density J=I/S=1.24e+006"

其中,/n表示换行,/t表示tab。至于数字格式。

数  值  格  式  转  换  例  子

命令                                                   结果

fprintf(' %.0e/n ',pi)                       3e+00

fprintf(' %.1e/n ',pi)                       3.1e+00

fprintf(' %.3e/n ',pi)                        3.142e+00

fprintf(' %.5e/n ',pi)                         3.14159e+00

fprintf(' %.10e/n ',pi)                        3.1415926536e+00

fprintf(' %.0f/n ',pi)                           3

fprintf(' %.1f/n ',pi)                            3.1

fprintf(' %.3f/n ',pi)                              3.142

fprintf(' %.5f/n ',pi)                              3.14159

fprintf(' %.10f/n ',pi)                             3.1415926536

fprintf(' %.0g/n ',pi)                               3

fprintf(' %.1g/n ',pi)                                 3

fprintf(' %.3g/n ',pi)                                 3.14

fprintf(' %.5g/n ',pi)                                 3.1416

fprintf(' %.10g/n ',pi)                                 3.141592654

fprintf(' %.8.0g/n ',pi)                                 3

fprintf(' %.8.1g/n ',pi)                                 3

fprintf(' %.8.3g/n ',pi)                                 3.14

fprintf(' %.8.5g/n ',pi)                                  3.1416

fprintf(' %.8.10g/n ',pi)                                3.141592654

x = -(M-1)*dM/2:dM:(M-1)*dM/2;

for p=1:N

fprintf(fid, '/n%5s/n', ['tape', num2str(p)])

y=[x;J(p,:);H(p,:);H(p,:)+Happl];

fid = fopen(name,'at+');

fprintf(fid, '%4s/t', 'x','J(x)','self H(x)','H(x)');

fprintf(fid, '/n');

fprintf(fid, '%6.2f/t %6.2f/t %6.2f %6.2f/n', y);

end

%定义自变量x(向量)和函数值,输出。

fclose(fid);

矩阵运算

矩阵的代数运算

一、 矩阵转置

MATLAB中用A’可以求出A矩阵的Hermit转置(共轭转置),矩阵的转置则可以由A.’求出。

二、 加减法运算

假设在MATLAB工作环境下有两个矩阵A和B,则可以由C=A+B和C=A-B命令执行矩阵加减法。若A和B矩阵的维数相同,它会自动地将A和B矩阵的相应元素相加减,并赋给C变量。若二者之一为标量,则将其遍加(减)于另一个矩阵。其它情况下,MATLAB将报错。

三、 矩阵乘法

MATLAB语言中两个矩阵的乘法由C=A*B直接求出,且这里并不需要指定A和B矩阵的维数。若A和B矩阵的维数不相容(A列数不等于B行数),则将报错。

四、 矩阵的左除

MATLAB中用“/”运算符号表示两个矩阵的左除,A/B为方程AX=B的解X。若A为非奇异方阵,则X=A-1B。

五、 矩阵的右除

MATLAB中定义了“/”符号,用于右除,相当于求方程XA=B的解。

B/A=(A’/B’)’

六、 矩阵翻转

MATLAB提供了一些矩阵翻转处理命令。

七、 矩阵乘方运算

在MATLAB中统一表示成F=A^x。

八、 点运算

两个矩阵之间的点运算是它们对应元素的直接运算,例如.*,.^等。

矩阵维度

size(matrix)=3 2 (3行2列)

length(matrix)=3

叉乘

函数cross 格式C = cross(A,B)

矩阵的逻辑运算

在MATLAB语言中,如果一个数的值为0,则可以认为它为逻辑0,否则为逻辑1。(PS:包括负数和复数)。

一、 矩阵的与运算 在MATLAB下用&号表示矩阵的与运算 二、 矩阵的或运算 在MATLAB下用|号表示矩阵的或运算 三、 矩阵的非运算 在MATLAB下用~号表示矩阵的非运算 四、 矩阵的异或运算 在MATLAB下矩阵A和B的异或运算可以表示成xor(A,B)。 矩阵的比较运算 < = > <= >= == ~=

Java中cas的实现原理是什么Struts2的​HTML非表单标签有哪些linux魔法键docker镜像分析工具divenodeJS基本使用​Struts2的逻辑控制标签怎么使用React Native可复用UI分离布局组件和状态组件怎么使用Git-查找回购中哪些应用已更改

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。