MATLABプログラミング 質問箱 その4
その楽ってのがわからんのよねー
マトラボはなんだがオプションが多すぎてなに追加したらいいのかわからんからなぁ 取りあえずデフォのmatlabだけで大体問題ないと思う
信号処理ならsignal~
toolbox追加するとか、後追いで対応できるしね
というか、やっぱ本当に必要な関数は自分で作っちゃたほうが安心な気がするけどな
homeライセンスならoffice感覚な値段だし試ししてみたら? >>285
そうしてみようかしら。。。
octave使いなんだけど、やはりマトラボさんの方が絶対いい!って言える?
ごめんね、しつこくて。
(背中押して欲しい) octaveだとデフォルトでは使えないfuctionが結構あるけど、
追加しようと思えばできるから個人的にはoctaveでも問題ないけどなぁ MatlabはIDEが良くなってきたのとドキュメントがしっかりしてるところが魅力。
Matlabに10年ほど課金してきたけど、もうドキュメント読まなくても覚えちゃってるし、IDEなくてもEmacsでいいし、そろそろOctaveでいいやってなってる。 まぁぶっちゃけoctave自分から選ぶような層はあえてmatlab選ぶ必要なんて無いよねぇ
cでもpythonでも金のかからない適当な方法選んでばっちり解析出来るイメージ
自分は仕事でどっぷりすぎてmatlab以外の選択肢は考えなかった口だわ;; matlab 使う仕事って学術系?企業だと使わないイメージ トヨタとか日産なんかの自動車の
研究開発で使ってるよ
mathworksの創始者もmatlabは最初
数学科とかには見向きもされず
工学系の学生に受けが良かったって
語ってなかったっけ? >>288-290
なるほど〜
octave使えてればmatlabしなくても。。。ってことなのかな?
それともoctave使う層の人間はmatlabにない関数やらは自分で作っちゃうよね?ってこと?
そしたら最悪描画に限ったらgnuplotでもよくないかい? どっちかって言うと後者かな、自分で作っちゃうイメージ
気のせいかもしれないけど前にoctave触ったとき、メモリ馬鹿食いするプログラム運用するときや数千点プロットする時は
matlabの方が軽いかなーって印象があったような気がする
大きいデータをいっぺんに扱わにゃならんとか、マルチコアフル回転させたいとかならmatlabがいいのかも(octaveあんまり詳しくないです・・・) matlabにおいて既定の設定ですとdoubleで保存されます。
そのため変数が例えば a=2.63890000000... というふうに
小数点に無駄な0が多く含まれておりますmatファイルで保存を行う場合、容量が大きくなってしまいます。
出来れば無駄な0をさくじょしたいのですがどのように行えばよいでしょうか
よろしくお願いします ハローワークでも、自動車系で、
matlabの募集をたまに見る
でも徐々に、R, matlabの仕事は、
Pythonへ置き換わっていくかも 仕事始めてから触りだした口だけど手計算のノリというか関数電卓の延長で使えるのが好きかな 画像処理も最新研究のmファイルが落とせるニッチな世界 後方互換性捨てるpythonなんて
怖くて仕事で使えねえよw
数年前のmatlabのparforはcやfortranの
openmpと比べて並列効果が小さかっ
たんだけど今はどうなんだろ? どの程度性能上がったかはしらんが単体だと4コアまでというクソ仕様 matlabでCAN通信を使いたいんだけどRTI CAN blocksetが見当たらないんだけどどうすればいいんですか?
dSPACEでファームウェアの更新でDS1103CANをアップデートしてdSPACEでは対応してるみたいなんですがちょっとこれからどうすればいいか分からないです >>286
遅レスなんで見てないかもだが
非線形関数を最適化する
fminsearch とか明らかに挙動が変わる
octaveは最適解探すの直ぐ諦める感じ
このレベルの関数自作できるのなら
octaveでも構わないんだろうけど lsqcurvefitで非線形曲線の近似曲線を求めようとしてるんですが、よい曲線形に収束しません。
どうすればいいのでしょう? Matlab大好きな人がOctave は重すぎるって行ってけど
今はi686に最適化されてるから使ってる使っているCPUに最適化したら
そこまで重くなさそうなんだけどどうなんだろう 質問失礼します。
※下付き文字を便宜上[]で示します。
例えば水はH[2]O、二酸化炭素はCO[2]と表しています。
生物の個体数の変動を表したモデルとして、以下のようなロジスティック写像がある。
x[n+1]=ax[n](1-x[n])
x[n]は正規化されたn年目の生物の個体数、x[n+1]は次年の個体数。aはその生物の出生率として与えられる。
出生率aがもし3以下なら、その生物の個体数は一定に収束する。
しかし、aが3以上になると周期的な挙動を引き起こし、さらにaがある臨界点を超えると、非常に複雑な変動を観察することができる。
このロジスティック写像を視覚的に理解するため、MATLABを利用して以下に述べる様々なグラフィックを描させてみよ。
(1)時系列
横軸に時間(年次)n、縦軸に個体数x[n]をとり、ロジスティック写像の時間的な変動を観察せよ。
a=3とする。
(2)リターンマップ
横軸にx[n]、縦軸にx[n+1]をとり、ロジスティック写像におけるx[n]とx[n+1]の関係をプロットせよ。
a=3とする。
(3)分岐図
横軸に出生率a、縦軸にx[n]をとり。aの値によってx[1]、x[2]、…、x[n]がどんな値をとるか観察せよ。
よろしくお願いします。 何も難しいことない。
指示されたとおりにグラフを描くだけ。 spectrogram()関数について質問です
出力引数無しの場合スペクトログラムがプロットされますが、
出力引数[s,f,t,p]として、関数を使ったあと出力引数無しの場合と同じようなフィギュアをプロットしたいのですが何関数を使えばいいのでしょうか? 以下のような非線形の3階常微分方程式がある。
dx/dt =-y-z
dy/dt =x+ay
dz/dt =bx-(c-x)z
(a=0.344 , b=0.4 , c=4.5)
これをレスラー方程式という。
このレスラー方程式をMATLABによる数値微分によって解き、x(t),y(t),z(t)の挙動を次の2通りの方法でコンピュータ画面上に描いてみよ。
なお、常微分方程式の数値積分法についてはルンゲッタ法を参考にするとよい。
(1)
x(t),y(t),z(t)の時間波形(横軸:時間(t),縦軸:x or y or zとした図)を描け。
また数値積分の時間の刻みΔtを何通りか変えて、Δtの値により波形が異なる様子を観察せよ。
(2)
x,y,zを3軸にとったこの方程式の解軌道の3次元プロットを作成し(1)と同様に解軌道に及ぼす影響について観察せよ。
正直何を言っているのかすらわからずお手上げ状態です。
よろしくお願いします。 宿題やってもらいたいなら何でも質問スレにでも行けば? Neuralnetwork Toolboxを利用しようと思いサンプルを試していました。
しかし、パターン認識や時系列、クラスタリングと全てでサンプルデータを動かしてみることができませんでした。
どのエラーも、
「関数または変数 'network' が未定義です。」
と表示されます。
正直、サンプルを動かそうとしているのにエラーを吐かれて困っています。
VERコマンドでインストールされていることは確認しました。
R2013aとR2015aの両方で試しましたが同じエラーで実行できませんでした。
どうすればエラーを回避できるようになるでしょうか? vec = [1 2 3]
この行ベクトルを指定した数だけ行の次元を増やして同じ値を入れるにはどうしたらいいですか?
2だったら
vec2 = [1 2 3;1 2 3]
3だったら
vec3 = [1 2 3;1 2 3;1 2 3]
みたいなのを
vec2 = ?(2,vec)
vec3 = ?(3,vec)
のように行いたいです >>315
まずrankを変えて行列を定義して、roopで順に入れ込んでいく。 >>315
vec2 = repmat(vec,2,1)
vec3 = repmat(vec,3,1) >>319
surf(peaks, 'LineStyle', 'none')
ってこと? マトラボのダウンロード番って一つのOSしか選べないのん?
当方、Macintosh、Linuxマシンで運用する予定なんやけど >>322
わいはいつもWin/Mac/Linの最新版ISOファイル落としてきとるがの >>323
えっ、それって割れちゃうやろ?
正規版でやで? matlabのhome版のDL購入(?)のクレジット決済ってVプリカでも可能ですか? >>325
325自身ですが、使えなかったらamazonで使えばいいかって感じで買ったら普通に買えました >>324
複数マシンにインストールしたいとき用に、ISOが公式に用意されてんの。
毎回ダウンロードだと帯域を食うでしょ。 基本的な質問で申し訳ないんですが、
配列A=zeros(5,2)みたいな配列があったとして、
2から4行目をB=[1,1]にするうまい方法ってありませんか?
スカラーの場合みたいにA(2:4,:)=Bのように使える関数みたいなものはありませんか?
A(2:4,:)=repmat(B,3,1) とかやるしかないんでしょうか? >>328
B=[1,1]はただの例で他の適当な1×2の配列(B[2,3]等)でもできる方法が知りたいです。 F(z,w)を定義して、fsolveでF=0を解きたいです
ここで最初wは初期値を与えて、zについてまず値を求めます
次に2回目以降はw=z、前回のzの値に更新してふたたびzについてwを更新したFを解きたいです
for文で10回繰り返すとして、wの値をfor文の中で更新しても関数を呼びたすたびに初期値のwになってしまいます
どのようにすればwおよびFを更新できますか?
ちなみに関数定義の中にwの値を与えず、実際のワークスペースでw=...と与えても入力引数が不足してますとエラーになってしまいます >>331
特に変数をglobalで宣言してないのですが、どのように変更するのでしょうか matlab homeだと出力したファイルに電子透かしっていうのがついてるらしいんだけど、これはどんな感じなの? contorf(x,y,z,20) すると等高線が20本引けるかと思うですが、等高線を消す方法ってありますか? >>335
contourf(x, y, z, 10, 'LineStyle', 'none') simulinkで、
2次元(x(t),y(t))のデータをグラフに表示させて、
時間経過(t)とともに変化させたいのですが、
そういうブロックあるんでしょうか? figureからパラコマの動画を作ってどのように推移していくか
見ようとしています。そこで
figure
for i=1:360;
scatter(x(:,:,i),y(:,:,i),1,z(:,:,i),'filled');
hold on
.....
end
みたいな感じで作ってみたのですが
操作自体はあってるのですが
データ量がすごく多く大変時間がかかるようでした…。
元のデータは640×480というデータ点数に
それぞれxとyとzの座標データ(mm)がありまして、それが360枚分ございます。
scatterじゃなくてこっちのほうが軽い、や
for文でやるべきではないなど全くわからない状態ですので
どなたかご教授していただけるとありがたいです。よろしくお願いします。 fsolveを使って2次の非線形連立方程式を解こうとした所、「Equation solved at initial point.」
という結果が出力されました。
最初は本当に初期値がそのまま解になる事もあるかと思い色々と初期値を変えて再計算をした所、
あらゆる初期値で同じ結果が出力されるという結果になってしまい困っております。
この「Equation solved at initial point.」というのは方程式にどのような問題がある時に発生するものなのでしょうか?
私は初め方程式の値が小さすぎるために初期値の段階で0に収束してしまいソルバーが解に到達したと判断している…と考えたのですが、
これだとべらぼうに大きい初期値を用いた場合にも同じ結果になる事との説明が合わないですよね。
(ただ、方程式中の変数は三角関数の中に入っているので初期値の値に関わらず式の形的に0に収束しているという事もあり得るとも考えています。
すみません、この辺は私の理解不足で支離滅裂です)。
また、残差は仮に方程式をf(x,y)+a=0 とするとaの値がほぼそのまま出力され、アルゴリズムは信頼領域法を用いています。 >>341
そこまで判ってて方程式を晒そうとは思わないのかな >>341
大きいとか小さいとかじゃなくて最初から微分値が0なんじゃねーの
小学校からやり直せ メインの.mファイルとクラス定義を1ディレクトリにまとめて実行することってできる?
他人にプログラム使ってもらうときに、検索pathがどうのこうのと説明するのが面倒なんだけど… for文内で1ピクセルごとにまったく同じ処理をしているのに、繰り返すうちに計算時間が長くなっていき、forの最後では最初の1000倍から2000倍の計算時間がかかります
原因として何が考えられますか? 次元の異なる複数の配列を一つのベクトルとして扱いたいんですが可能でしょうか?
具体的には [[4x3] [5x2] [100x4]] といった感じです
※[4x3]は4行3列の配列です Matlabの使用用途で一番多いのはなんだろう
画像解析かな? eye trackingしたいんですけど、そういうのに使えるツールボックスあります? >>358
ありがとうございます!
communityってところから探せば良かったんですね
自分の調べ方が悪かったです 学生の無料評価版をインストールしてから30日経ったので、製品版を買おうとライセンス更新とか色々したのですが、
再度評価版をインストールしてしまいました。
また無料で使えるみたいですが、何かの間違いですか?
出来るのなら5000円のtoolboxを買いたいです。 社会人なら格安の個人用途版でも買えば?
商業目的や研究にも使えないけどな 無料にこだわるならmatplotlib使ってCPythonで呼ぶのが割と実用的 >>363
誤爆してしまいました。すみません。
∫F(x)G(x)dx
このような定積分をintegralで行いたいのですが次元が合いませんとエラーが出てしまいます。
どのように記述したらよいのでしょうか? >>364
f()とg()の関数が何なのかわからんと何とも言えない F(x)=e^Ax
Aは定数です
G(x)はステップ関数やインパルス関数、ガウス波といった入力によって変化します integralを使用する際はベクトル入力した際出力も同じ大きさのベクトルが出力されないといけないから積があるとエラーが起きるね >>367
なるほど
*を.*に変更したらエラーが直りました
*だと行列の大きさが変わっていたのですね
ありがとうございました 皆さん何かテキストから入りました?
大学で講義取ってないんですが、昔の先輩の研究を掘り起こすのにmatrabが必要で自習がしたいです
ちなみに自分機械系でして、fortranとデータ整理にエクセルマクロをいじれる程度です… >>370
他言語経験があるなら、公式サイトのヘルプやフォーラムが良く整ってるので基本はそれを参照、あとはソフト付属のexampleを読み解けば何とかなるんでない?私は始めたあとに何冊かテキストぽいの買ってみたけど、最近の版から入った機能をよく使うせいか情報が古くてあまり役に立たなかったよ。 matlab使わんでもmatplotlibで用足りる 今から覚えるならIPythonとかだよね。いろいろ潰しも効くし。 質問です
凡例の順番を入れ替えたく構造体を作成し
入れ替え自体はできるようになりましたが
マーカが入れ替わらず文字のみ順番が変わった状態になってしまいました
ループ内でグラフを重ねて表示して
ループを抜けたところで構造体作成→凡例ソート表示をしているからだと思うのですが
マーカを入れ替える方法はグラフ表示前にソートを行うしかないでしょうか? >>379
ありがとうございます
現在グラフを描画する配列はcsv読み込み毎に全てループ内で上書きしており
格納もしていないので別の変数に保存して再描画を試してみようと思います delaunay分割についての質問です。
以下のコードを書いたのですが、三角要素がバラバラの位置にあるため有限要素法が使えません。
どのようにコードを変えたら良いのでしょうか。matlab歴一週間なので拙いコードですがよろしくお願いいたします。
clear
close
N = 9;
L = pi;
x = 0:L/(N-1):L;
y = 0:L/(N-1):L;
[x,y] = meshgrid(x,y);
X = x(:);
Y = y(:);
XY = [X,Y];
tri = delaunayTriangulation(XY);
boundaryedges = freeBoundary(tri)';
triplot(tri)
axis equal
IC = incenter(tri)
hold on
plot(XY(boundaryedges,1),XY(boundaryedges,2),'-r','LineWidth',2)
numtri = size(tri,1);
trilabels = arrayfun(@(P) {sprintf('T%d', P)}, (1:numtri)');
Htl = text(IC(:,1),IC(:,2),trilabels,'FontWeight','bold', ...
'HorizontalAlignment','center','Color','blue');
hold off 今現在Matlab2016aを持っていて、それとは別に古いverも入れたいのですが、ライセンスを新たに買わなければならないのでしょうか?
宜しくお願い致します。 matlab2016の入ってるPCで作ったプログラムをラズパイで動かしたいのですがどうすれば出来ますか?