Re: [問題]for迴圈和while的程式問題
※ 引述《profyang (prof)》之銘言:
: ※ 引述《HAK (no pain no gain)》之銘言:
: : Matlab新手想請問關於for迴圈與while組合的程式問題
: : 我的問題在於目前有一個4x4的A矩陣
: : X1的初始值為[1;0;0;0],新的X1=A*X1
: : 我想要求n次之後X1中的元素值小於0.00001,並且記錄每一個X1的值
: : 因此寫了下面的程式:
: : X1(1:4,1)=[1;0;0;0];
: : for j=1:100
: : while X1(1:4,1)>0.00001
: : n(j,1:4)=X1';
: : X1=A*X1;
: : end
: : end
: : 但是卻進不了迴圈
: : 不知可否請先進點撥一下問題出在哪裡呢
: X1=[1;0;0;0];X2=X1;n=[];
: while sum(abs(X2))>0
: n=[n,X1];
: X1=A*X1;
: X2 = X1;
: X2(X2<0.00001) = 0;
: end
: 應該會動吧 我用A=0.1試過好像會動
不好意思又有問題了
假如說我的A矩陣有5個並且已經存成3維矩陣的形式
想要對這5個A矩陣做同樣的事情
並且把根據不同矩陣所求得的n1存成3維矩陣n2的形式
因此寫了這樣的程式:
for k=1:5;
M=A(:,:,k);
X1=[1;0;0;0];X1_temp=X1;n1=[];
while sum(abs(X1_temp))>0
n1=[n1,X1];
X1=M*X1;
X1_temp = X1;
X1_temp(X1_temp<0.001) = 0;
end
n2(:,:,k)=n1;
end
但是執行的時候出現??? Subscripted assignment dimension mismatch.的訊息
可否請問該如何修改呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.134.111
推
05/10 16:57, , 1F
05/10 16:57, 1F
→
05/10 16:57, , 2F
05/10 16:57, 2F
→
05/10 16:58, , 3F
05/10 16:58, 3F
推
05/10 17:00, , 4F
05/10 17:00, 4F
→
05/10 17:03, , 5F
05/10 17:03, 5F
→
05/10 17:03, , 6F
05/10 17:03, 6F
→
05/10 19:22, , 7F
05/10 19:22, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):