この新しいバージョンでの大きな変化は,ローカライゼーションによる日本語のサポートです.行列の扱い,グラフィック,文法ともローカライゼーションの個所を除いてそのまま今までのスクリプトは使用できます.一応,入手した時点(99/4/26)で,かるくスクリプトをテストしたところ問題はありませんでした. SIMULINKに関しては,操作方法は,従来のものと同様のようですが.Simulink Library Browserになり見た目がかなり変更になっています. SIMULINKでの大きな変更点は、To Workspaceなどでの出力が従来は、普通の変数であったところが、構造体変数などに変更できるようになった点です。 (従来の方法で保存も出来ますがデフォルトは構造体変数出力のようです。) 例えば、simout変数を出力にしたとき、従来は、 plot(simout) でグラフを表示できたのですが、Ver.5.3からは plot(simout.signals.values) としなくてはならなくなりました。使用する際には、ご注意ください。 もし不具合が合った場合には,ikko@k.hosei.ac.jpまで連絡を頂ければ幸いです. 一応,こちらでわかっている情報は, http://www.gerox.com で対応したいと思いますのでよろしくお願いいたします. 以下は,本の修正事項です.すいませんバグが多くて...m(_ _)m P.5 誤:データ所得 正:データ取得 P.104のスクリプトで index1=round(F1*dt*n) ;index2=round(n-F1*dt*n) の1が抜けていました。なお、P.103、P104のスクリプトファイルは、 p103.m p104.mがあるのでご利用ください。 P.43 コロンはセミコロンの間違いです。また、行列で表現するためHi・・・とI'm・・・のそれぞれの行の文字数も同じにする必要があります。 誤 ttttt=['Hi How are you?','I''m fine. Thanks!'] 正 ttttt=['Hi How are you?';'I''m fine. Thanks!'] P.33 初期化のためb=[ ]の宣言が必要です。 追加 clear b; b=[ ]; b=[b 1] これ以降のバグは、初版二刷以降では修正済みだと思います。 P.102 バンドパスフィルタの記述でのインデックス数の計算で勘違いをしておりました.まことに申し訳ありません. 本来,F*dt*nとすべき個所をF/(dt*n)としていました.(ディメンジョンが合いません,ケアレスミスです.)これに伴い, P102の表
index2=round(n-F*dt*n) P103,104プログラムの対応する個所を修正する必要があります. なお,このサンプルプログラムでは,たまたま,dt*nが1に近かったためサンプルの結果に変化がなかったので気がつきませんでした. P.59 誤
P.58 図の部分も破線に変更でなく点線に変更です. 誤
正
P.180 ポップアップメニューのサンプルプログラムは,間違いではないのですが,userdataのプロパティを入力するとき,文字列は必ず二文字づつ確保する必要があります.テキストでは,スペースが見づらいのでスペースの入力が要らないセル配列によるものを挙げておきます. 正
P.96 testwav.m 本の方は,文字がつぶれて印刷されているためほとんどわかりませんが,スクリプト内で
P.98 9行目 誤 bobe 正 bode P.83 これは,誤りとは言えませんが,MATLAB 5.2では,ガイドツールのレイアウトが若干変更になりました.(Version 5.3ではもっと変更になるかも可能性大``r(^^;)ポリポリ) 今のところレイアウトが変わっただけで使用法は変わってないようです. P.193
P.164
旧 次にwindowbuttonmotionfcnでは,マウスの位置をcurrentpointにより取り出している.この時,注意する点として,currentpointで得られる座標は,座標軸の左下を原点右上を(1,1)とした座標系(unitsでnormalを選んでいるため)であり,”☆”の位置を再計算するためには,座標系の変換をする必要がある.そのため変数loにより座標軸の情報を得ている. 新 次にwindowbuttonmotionfcnでは,マウスの位置をgcaのcurrentpoint属性から取り出している.gcfにもcurrentpoint属性があるが,図に対する座標系であり意味が異なるので注意すること. P.16 lookfor の実行例が,MATLABのバージョン,追加ツールボックスの数によりRoundの出る位置が異なるようです.ちなみに私のところのMATLABでは, 》 lookfor integer BITMAX Maximum floating point integer. ROUND Round towards nearest integer. BASE2DEC Convert base B string to decimal integer. 》 となっています.Version.5.3では,日本語に対応しております.lookfor関数にも日本語が使えます.
P.98 ここで使用しているbode,lsim関数は,アドインソフトのcontrol toolboxが必要です. 明記するのを忘れておりました.申し訳ありません. と言った訳で,タイトルに, *control toolboxが必要
を付加したほうが適切であろうと思います. また,このままでは,申し訳無いので,lsim関数に関しては,control toolbox不要の互換の関数llsimを私が作成いたしました.もしコントロールツールボックスをお持ちでなく使用したい方は,このページのMATLAB FAQ・Tipsにllsimのスクリプトが掲載されているのでそちらをご利用下さい.
P.11 誤 行列列演算 正 行列演算
P.67 二箇所あります. 誤 魔法陣 正 魔方陣
P.147 handtst.m 誤 カンマが全角になっている. clear close all figure1=figure(1) subplot11=subplot(2,1,1) plot11=plot(sin(0:0.1:2*pi)) title(’sin(x)’) subplot12=subplot(2,1,2) plot12=plot(cos(0:0.1:2*pi)) title(’cos(x)’) 正
P.12 誤 IDDE IMEX IMATLABエンジン 正 DDE(Dynamic Data Exchange) MEX(MATLAB EXternal interface) MATLABエンジン
P.53 誤 九九の計算計算で 正 九九の計算で
P.73 誤 である.. 正 である.
P.80 誤 》rotate 3d 正 》rotate3d
P.82 誤 (jpeg,bmp,pcx,tif.etc) 正 (jpeg,bmp,pcx,tif,etc.)
P.84 誤 ④save fnameXYZ -ascii 正 ④save fname XYZ -ascii
P.190 誤 》help add2 正 》help add1
P.190 誤 add2.mのスクリプト 正 %simple function test program % ADD2(A,B,C), where A & B & C are scalar. % programmed by Gerox(c) 1997 function y = add2(a,b,c) if(nargin == 2) c = 0; else if(nargin ~= 3) error('This function only support two or three input argument.');end end if(nargout>1) error('This funciton only support one output argument.'); end [ma na]=size(a); [mb nb]=size(b); [mc nc]=size(b); if(max([ma mb mc na nb nc])>1) error('input must be a scalar.'); end y=a+b+c;
P.192 誤 》add2(1,2,3,4) ans = 10 》add2(1,2) ans = 3 正 》add3(1,2,3,4) ans = 10 》add3(1,2) ans = 3
P.162 誤 》set(0,ShowHiddenHandles','on'); % This is for only MATLAB Verion 5 正 》set(0,ShowHiddenHandles','on'); % This is for only MATLAB Version 5
P.129 誤 SIMULNKでは,これらの 正 SIMULINKでは,これらの
P.111 誤 zY=[20 24 23 30 ... 正 Y=[20 24 23 30 ...
P.163 誤 現在のマウスの位置がわかるプロパティcurrentpotint 正 現在のマウスの位置がわかるプロパティcurrentpoint
P.171 これは,図の中の間違いです. 誤 図の中の○がAについている 正 図の中の○はB
P.82 誤 画像データを読み込む関数impread 正 画像データを読み込む関数imread
P.3 誤 MATLAB/SIMLULINK 正 MATLAB/SIMULINK
P.29 コンマとセミコロンの違いは,重要なのでボールドの方が良いと思います. 誤 コンマの変わりにセミコロンも使用できる.コンマとセミコロンの違いは実行時に画面に結果を表示するか否かである. 正 コンマの代わりにセミコロンも使用できる.コンマとセミコロンの違いは実行時に画面に結果を表示するか否かである.
P.100 誤 1000点のデータ 正 1001点のデータ
P.134 誤 電流と電圧のと関係は, 正 電流と電圧との関係は,
P.189 この関数Mファイルの注意は,重要なのでボールドの方が良いと思います. 誤 関数Mファイルは一度使うとコンピュータのメモリにキャッシングされ,次回からキャッシング下情報のみを使用し関数Mファイルの内容を変更しても反映しない場合がある. 正 関数Mファイルは一度使うとコンピュータのメモリにキャッシングされ,次回からキャッシングした情報のみを使用し関数Mファイルの内容を変更しても反映しない場合がある.
P.205 Index番号が点(.)とカンマ(,)の統一がとれていない.
P.37 テーブル内の×の表示がおかしい.
P.68 誤 4本のヒストグラム 正 3本のヒストグラム
P.27 これは,執筆時点(MATLAB Version 4.2c)の頃の状況です.現在Version5以降は,そう言うことはありません.(オペレータオーバーロードがサポートされたため) 誤 シンボリックツールボックスというアドインソフトがあるので使えないことはないが,シンボリックに扱うのであれば,Mathematicaなどの方が適している. 正 シンボリックツールボックスというアドインソフト(別売)を使うと可能である.
P.36 誤 この結果を元に,ベクトルqの中の絶対値が1より大きい要素のみを表示するには, 正 この結果を元に,アレイxxの中の絶対値が1より大きい要素の値を表示するには,
P.107 誤 MS-DOS等の制約上,行データは255文字分なので列データの方が扱いやすい. 正 MS-DOS等の制約上,列データは255文字分なので行データの方が扱いやすい.
P.124 削除 誤 そこでマウスの右ボタンを押したままにする.
P.107 誤 列データとして行列に格納される 正 行データとして行列に格納される
P.33 誤 A*Bとした場合,Aの行数とBの列数は同じで 正 A*Bとした場合,Aの列数とBの行数は同じで
P.33 誤 さらに変数hの1列目に空ベクトル 正 さらに変数hの1行目に空ベクトル
P.27 これは誤りでは無いと思いますが... 誤 Version5.2では,若干のツールバーの変更があるが機能は同じである. 正 画面の図は,Version5.1をもとにしている.デザインレイアウトの変更があるが機能は同じである.
P.83 追加 興味のある人は読んで見るとよい).ここでは詳しく解説しないが,これらをもとに筆者らが作成したCONTEC社製 ANALOG I/O PC Card AD12-8(PM)用AD変換プログラムが http://www.shuwasystem.co.jp/books/772_s.htm よりダウンロードできる.このプログラムとADカードを使うとノートPCでADができるためポータブルな計測,信号解析システムの開発に非常に便利である.興味のある人は,使ってもらいたい.
P.66 追加 動作速度は,格段に速くスムーズに変化するようになる. また,Version5.2以降では,drawmode,erasemodeプロパティ以外にfigureの隠しプロパティdoublebufferを使っても高速化することができる.set(gcf,'doublebuffer','on'); |