Notebookのセルは、上のボタンでコピー・貼り付けができます。問題文を写す際に便利です。
切り取りのボタンを使えば、不要なセルを削除することができます。
0から1までで間隔0.01の数列がMATLABで何×何行列として扱われるかを確認してください。
x = 0:0.01:1;
size(x)
printf("%d×%d行列",size(x)(1),size(x)(2)) %size(x)はベクトルなので、後ろに(index)を付ければ各成分にアクセスできる printf("%d×%d行列",size(x))でも同じ
ans = 1 101 1×101行列
a:b:c
の書き方でlinspace(0,pi,10)
と同じベクトルを作成してください。
y = linspace(0,pi,10) %一般には、linspace(a,b,n)と
z = 0:pi/9:pi %a:(b-a)/(n-1):bは同じベクトル
y = Columns 1 through 8: 0.00000 0.34907 0.69813 1.04720 1.39626 1.74533 2.09440 2.44346 Columns 9 and 10: 2.79253 3.14159 z = Columns 1 through 7: 0.00000 0.34907 0.69813 1.04720 1.39626 1.74533 2.09440 Columns 8 through 10: 2.44346 2.79253 3.14159
同じベクトルのはずなのに表示がずれていることを疑問に思うかもしれませんが、原因は不明です。whos関数を使って変数の一覧を表示するとyとzのBytes(データ量)が異なることが分かり、内部的な扱いの違いが関係している可能性があります。
whos
Variables in the current scope: Attr Name Size Bytes Class ==== ==== ==== ===== ===== ans 1x2 16 double x 1x101 24 double y 1x10 80 double z 1x10 24 double Total is 123 elements using 144 bytes
以下の条件を満たす行列を作成してください。
A = eye(20)*4;
A(1,2:20) = 1;
A(20,1:19) = 1;
A(2:19,[1,20]) = 1;
A(9:11,9:11) = 2;
A(9,9) = 4; %「A(9,9) = 4; A(10,10) = 4; A(11,11) = 4;」と書いてもよい(セミコロンやカンマで区切れば複数の文を同じ行に書ける)
A(10,10) = 4; %「A(9,9) = A(10,10) = A(11,11) = 4」と書いてもよい(Webで情報を見つけられなかったため、あまり推奨はしない)
A(11,11) = 4;
display(A)
A = 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 4 2 2 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 4 2 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 2 4 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4
条件を満たす行列の作成方法は他にいくつもありますが、なるべくきれいなコードとしては例えば以下が考えられます。
A = ones(20,20);
A(2:19,2:19) = 0;
A(9:11,9:11) = 2;
A = A-diag(diag(A))+eye(20)*4; %行列の対角成分のみを置き換える 「A = spdiags(repelem(4,20),0,A);」でも同じ
display(A)
A = 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 4 2 2 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 4 2 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 2 4 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4
レポート課題提出のためのファイルのダウンロードは、必ずファイルを保存してから行うようにしてください。ファイルの保存は一定時間ごとに自動的にされますが、手動では左上のボタンまたは[Ctrl]+[S]でできます。
加えて、CESのレポート提出機能でファイルを提出した後には、必ずPreviewで内容を確認するようにしてください。