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的二維矩陣。