A. 如何用在matlab用循环结构输入84阶的矩阵
为什么要用循环语句呢?直接用diag函数不就可以了,循环的话要写两个循环多麻烦,matlab里能少用循环就少用循环吧
M=5;%输入M的值
a=6*ones(1,84);a(M)=0;%矩阵对角线的值
b=8*ones(1,83);b(M-1)=0;%对角线下面的值,83个数,第M-1个位置为0
c=ones(1,83);c(M)=0;%同a,b
A=diag(a)+diag(b,-1)+diag(c,1);%diag(a,n)就是生成对角线为a的矩阵,n为0为或者空时为主对角线,-1为对角线下面一个,1为对角线上面一个,当然-2就是主对角线下面两行的位置
---------------------------------------------------------------------------------------------------------------
如果循环的话也行,比较简单,但我不推荐
A=zeros(84);
M=5;
for i=1:84
A(i,i)=6;
end
for i=1:83
A(i,i+1)=1;
A(i+1,i)=8;
end
A(M,M)=0;
A(M,M+1)=0;
A(M,M-1)=0;
话说你那个是省略号还是0啊,我现在认为是0,但看上去不会是省略号吧?是省略号的话,把所有赋值0的全部删除掉就行了
B. matlab如何循环的输入一个8*45的矩阵,里面的值是自定义的,应为阶数比较大,能不能一行一行输入矩阵啊
可以用while循环语句的输入一个8*45的矩阵。实施代码:
clc,close all
n=8;i=1;
while i<=n
disp(['第',num2str(i),'行']);
a1=input('请输入第1列至5列的数据,输入格式[1 2 3 4 5]:');
if size(a1,2)<5,a1=input('数据不对,请重新输入第1列至5列的数据,输入格式[1 2 3 4 5]:'); end
a2=input('请输入第6列至10列的数据,输入格式[6 7 8 9 10]:');
if size(a2,2)<5,a2=input('数据不对,请重新输入第6列至10列的数据,输入格式[6 7 8 9 10]:'); end
a3=input('请输入第11列至15列的数据,输入格式[11 12 13 14 15]:');
if size(a3,2)<5,a3=input('数据不对,请重新输入第11列至15列的数据,输入格式[11 12 13 14 15]:'); end
a4=input('请输入第16列至20列的数据,输入格式[16 17 18 19 20]:');
if size(a4,2)<5,a4=input('数据不对,请重新输入第16列至20列的数据,输入格式[16 17 18 19 20]:'); end
a5=input('请输入第21列至25列的数据,输入格式[21 22 23 24 25]:');
if size(a5,2)<5,a5=input('数据不对,请重新输入第21列至25列的数据,输入格式[21 22 23 24 25]:'); end
a6=input('请输入第26列至30列的数据,输入格式[26 27 28 29 30]:');
if size(a6,2)<5,a6=input('数据不对,请重新输入第26列至30列的数据,输入格式[26 27 28 29 30]:'); end
a7=input('请输入第31列至35列的数据,输入格式[31 32 33 34 35]:');
if size(a7,2)<5,a7=input('数据不对,请重新输入第31列至35列的数据,输入格式[31 32 33 34 35]:'); end
a8=input('请输入第36列至40列的数据,输入格式[36 37 38 39 40]:');
if size(a8,2)<5,a8=input('数据不对,请重新输入第36列至40列的数据,输入格式[36 37 38 39 40]:'); end
a9=input('请输入第41列至45列的数据,输入格式[41 42 43 44 45]:');
if size(a9,2)<5,a9=input('数据不对,请重新输入第41列至45列的数据,输入格式[41 42 43 44 45]:'); end
A(i,:)=[a1 a2 a3 a4 a5 a6 a7 a8 a9];
i=i+1;
if i==n+1
A
return
end
end
下图为5×10的矩阵输入过程
C. 用matlab循环命令编写程序创建矩阵a
其实这种矩阵根本不需要循环,两句话就搞定了。当然用循环比较容易理解。
[x,y]=meshgrid(1:5,1:6);
a=1./(x'+y'-1)
D. Matlab利用循环语句构建矩阵,急用。
function m = matrix(n)
m = zeros(4);
for i = 1:4
m(i,:) = n - (i-1);
end
E. MATLAB中如何用for循环连续拼接矩阵
实现拼接根本不需要循环,一个语句就够了(前面load数据的部分不变):
cat(1,a{:})
示例:
>>a={magic(3);eye(3);ones(3)}
a=
[3x3double]
[3x3double]
[3x3double]
>>cat(1,a{:})
ans=
816
357
492
100
010
001
111
111
111
F. matlab中矩阵怎么在for循环中用
matlab中矩阵在for循环中用可以参考以下:
%File:main.m
%把程序放到和*.txt同一目录下面
%listing为一个结构体数据类型
listing=dir('*.txt');
N=100;
allData=[];
fori=1:N
fileName=listing(i).name;
fileData=load(fileName);
allData=[allData;fileData];
end
(6)如何用循环命令编写矩阵扩展阅读:
for循环语法
1、语句最简形式为:
for( ; ; )
2、一般形式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。
for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。
G. 如何实现矩阵循环计算
在循环前定义空矩阵a=[];,在循环中定义temp矩阵进行操作装填,并且利用a=[a;temp]进行合并。
这种方法在循环中每次都改变了矩阵a的大小,实现了对循环中每一次结果的记录。
[a;b]实现了在矩阵列数相等的情况下列向合并矩阵,[a b]实现了矩阵行数相等的情况下横向合并矩阵。
H. 请问:如何用matlab循环语句编写多个矩阵计算,如C1=A1*B1,C2=A2*B2,…,类似那
用循环语句就可以了,假设要让n个矩阵计算,如下
>>clear;i=0;
for i=1:n
C(i)=A(i)*B(i)
end
I. (matlab)使用for循环产生以下矩阵:
J. 刚刚在学matlab,for循环语句不会用,求用matlab表示矩阵
一、矩阵的表示
在MATLAB中创建矩阵有以下规则:
a、矩阵元素必须在”[ ]”内;
b、矩阵的同行元素之间用空格(或”,”)隔开;
c、矩阵的行与行之间用”;”(或回车符)隔开;
d、矩阵的元素可以是数值、变量、表达式或函数;
e、矩阵的尺寸不必预先定义。
二,矩阵的创建:
1、直接输入法
最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。
2、利用MATLAB函数创建矩阵
基本矩阵函数如下:
(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;
(2) zeros()函数:产生全为0的矩阵;
(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;
(4) eye()函数:产生单位阵;
(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。
3、利用文件建立矩阵
当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。