MATLABプログラミング 質問箱 その4

2012/09/03(月) 17:35:08.97
MATLAB 日本語版
http://www.cybernet.co.jp/matlab/
MATLAB??本家
http://www.mathworks.com/

Yahoo??MATLAB
http://dir.yahoo.co.jp/Science/Mathematics/Software/MATLAB/
MATLAB入門
http://feedback.mech.fukui-u.ac.jp/matlab/matlab0.htm
MATLAB??チュートリアル
http://www-isys.eei.metro-u.ac.jp/~sho/pub/ttmatlab/Index.html


前スレ
MATLABプログラミング 質問箱 その3
http://toro.2ch.net/test/read.cgi/tech/1254528108/
2013/04/02(火) 22:18:12.30
>>117
epsで吐き出すなら、吐き出した先のソフトで色がついてる背景を消去したら
いいだけじゃない
2013/04/15(月) 02:11:41.52
[eigv eign]=eig(Hamiltonian);

などのように行列を対角化したときに
maxやminのように最大か最小を見つけるのではなく
n番目に小さいeignの要素と、その場所を得る関数はありますか?
2013/04/15(月) 09:57:26.38
[Y,I] = sort(X); つかったら?
122デフォルトの名無しさん
垢版 |
2013/04/17(水) 15:29:16.26
>>119
texなんですが、どうやってやれば良いのでしょうか?
123デフォルトの名無しさん
垢版 |
2013/04/24(水) 14:45:13.87
バンドパスフィルタにはゼロ位相のものと因果律を
満たすものとがあると思うのですが、ネットで落ちていたんですが
以下のはどちらにあたるか教えて下さい。
よろしくお願いします。
124デフォルトの名無しさん
垢版 |
2013/04/24(水) 14:49:17.62
function [bandy]=bandp_fft(y,fs,F1,F2)
dt=1/fs;
[k,l]=size(y);
if k==1
n=l;
else
n=k;
end;
ffty=fft(y);
%------------------------------------ Low-pass(f=<F1)
index1=round(F1* (dt*n)+0.5);
index2=n-(index1-2);
Lowpass=ones(size(ffty));
Lowpass(index1+1:index2-1)=zeros(size(Lowpass(index1+1:index2-1)));
lowy=real(ifft(Lowpass.*ffty));
%figure1=figure(1);plot(lowy);
%------------------------------------ High-pass(f>F2)
index1=round(F2*(dt*n)+0.5);
index2=n-(index1-2);
Highpass=zeros(size(ffty));
Highpass(index1+1:index2-1)=ones(size(Highpass(index1+1:index2-1)));
highy=real(ifft(Highpass.*ffty));
%figure2=figure(2);plot(highy);
%------------------------------------ Band-pass (F2<f=<F1)
bandy=real(ifft(Lowpass.*Highpass.*ffty));
125デフォルトの名無しさん
垢版 |
2013/04/30(火) 16:36:38.36
MATLABでAM信号を書きたいのですがエラーが出てしまいます。ソースコードは

fc = 5e4;
ac = 1;
wc = 2 * pi * fc;
fm = 5e3;
am = 1;
wm = 2 * pi * fm;
tt = 2e-3;
n = 10000;
ts = tt/n;
t = 0 : ts : tt;
s = ac * (1 + am * sin(wm * t)) * sin(wc * t);
plot(t(1:n/2), s(1:n/2));

時間波形0〜2msを10000サンプリングのうちの時間波形0〜1msを表示したいです。
情報信号sin(ωc*t),ωc=2*π*5000
搬送波sin(ωm*t),ωm =2*π*50000

内部行列の次元は一致しなければなりません。とエラーが出ます。どなたか知恵を貸してください。
126デフォルトの名無しさん
垢版 |
2013/04/30(火) 17:11:39.09
最後のmとc逆でした
2013/04/30(火) 17:49:07.66
ちんぽ噛んで死ね
2013/05/02(木) 00:12:26.05
rcosineとhanningって一緒なの?
説明見ると、よくわからんが
式が一緒っぽいみたいなのと
plotした波形が一緒なんだが
これを説明できる文章が思いつかン
ネットで検索したり、図書館で本読みまくったが、初歩的なことなのか、ぜんぜんのっとらん。ハニングはわかるんだが
2013/05/09(木) 19:26:40.27
あるシミュレーションで100万点ほどサンプルして
計算処理したいのですが、要素が多すぎますってエラーで
計算できません
初歩的なことですみませんが
回避方法教えてください
2013/05/17(金) 17:46:16.03
>>129
解決しました
2013/05/17(金) 22:58:43.48
一挙に読み込むのでなく
読み込みと処理とを適当に分割しました
とかいうんじゃねーだろな
2013/05/19(日) 17:26:54.36
x-5cosx+3sinx-40=0
をニュートン法で求めたいのですが、matlabの数値計算の本を読んでもさっぱりで、どの様に考えたらよろしいでしょうか?
よろしくお願いします。
2013/05/19(日) 19:01:17.44
すいません、自己解決しました。
簡単だった…
2013/05/20(月) 18:43:09.02
http://www.wolframalpha.com/input/?i=Plot[x+-+5+Cos[x]+%2B+3+Sin[x]+-+40%2C+{x%2C+30%2C+50}]

グラフ見て概略把握して

http://www.wolframalpha.com/input/?i=FindRoot[x+-+5+Cos[x]+%2B+3+Sin[x]+-+40+%3D%3D+0%2C+{x%2C+34}]
http://www.wolframalpha.com/input/?i=FindRoot[x+-+5+Cos[x]+%2B+3+Sin[x]+-+40+%3D%3D+0%2C+{x%2C+38}]
http://www.wolframalpha.com/input/?i=FindRoot[x+-+5+Cos[x]+%2B+3+Sin[x]+-+40+%3D%3D+0%2C+{x%2C+42}]

34.1895
38.9164
42.2712

Mathematica
2013/05/21(火) 04:39:15.71
>>131
for1回ごとに100万この要素を持つ行列をそれぞれ計算させてそれを複数回まわしました
要素が多すぎと出ますが一応計算はできるみたいなので
2013/05/21(火) 18:16:36.83
質問させていただきます。

現在、ある画像ファイルに対し、for文を用い少しずつ違う処理を加えた後、
各データをbmpとしてimwriteで保存しようとしているのですが、
ファイル名の末尾に
filename_1.bmp
filename_2.bmp
filename_3.bmp
...
などと、名前を適宜変えて保存するにはどうすればよいのでしょうか。

for p = 1 : 100
imwrite(data, 'filename_%d.bmp',p ,'bmp' );
end

のような感じで実行できると思っていましたが、どうやら駄目なようなので・・・。
よろしくお願いします。
2013/05/21(火) 23:35:48.25
imwrite(data, ['filename_' num2str(p) '.bmp'] )
2013/05/22(水) 13:02:07.37
imwrite(data, sprintf('filename_%d.bmp', p), 'bmp');
でもいける。
2013/05/24(金) 00:46:13.71
>>137
>>138
ありがとうございます。
2013/06/03(月) 14:42:31.05
質問です
ubuntuでlmstartからサーバ上のmatlabを起動していますが
matファイルやmファイルをダブルクリックで開こうと思ってもmatlab上でロードできません

matファイル等のプロパティからmatlabと関連付けしようとしましたが、一覧にmatlabが表示されず選択出来ませんでした

matファイル等とmatlabを関連付ける方法はありますか?
2013/06/22(土) 13:18:08.13
質問です。よろしくお願いします。
オイラーの運動方程式をルンゲクッタ法で解きたいのですが、どのようにプログラムを組んだら良いのかが分からないという状態です。
よろしければ教えて頂けたら嬉しいです。
142デフォルトの名無しさん
垢版 |
2013/06/24(月) 10:55:53.56
質問です。imagescでデータをカラープロット
するときにy軸を対数スケールにしてなおかつy軸は
下から上に増加させたいと思います。自分でやるときに
axis('xy')を付加すると画像が消えます。どなたか
対処法を教えて下さい。よろしくお願いします。
143デフォルトの名無しさん
垢版 |
2013/07/04(木) NY:AN:NY.AN
パノラマ画像を作りたいのですが、どうしたらいいのでしょうか??
stitchingという作業について詳しく知りたいです。
144デフォルトの名無しさん
垢版 |
2013/07/19(金) NY:AN:NY.AN
質問です。
文字列1つと数字データを2つ含む構造体を
エクセルに出力したいのですが、どうすれば良いでしょうか。

例;
data=struct('str','','prob',0,'sum',0);
このdataという構造体に例えば100個のデータが入っているとします。
data(1).str=string, data(1).prob=0.9,data(1).sum=5
data(2).str=string2, ...
...
data(100).str=string100,data(100).prob=0.1,data(100).sum=4
のような形です。

このdataという構造体をエクセルに出力するにはどうすれば良いでしょうか。

よろしくお願いします。
145デフォルトの名無しさん
垢版 |
2013/07/20(土) NY:AN:NY.AN
質問です。
畳み込み和を計算するユーザ定義関数を
function y = con(x)

y=[];
N=length(x);

for m=0:N-1;
tmp=0;
for m=0:N-1;
tmp=tmp+x(m)*h(n-m);
end
end
上記の様に書いてみたのですが、これであっているのでしょうか?
なにか別の書き方ありましたら教えて欲しいです。
146デフォルトの名無しさん
垢版 |
2013/07/20(土) NY:AN:NY.AN
もしよろしければどなたかお答えください。

matlabである時系列のパワースペクトルを白色化(whitening)して
それをまた時間領域に戻したいのですが、ネットをさがしてもでてきません。
どなたかやり方を教えて下さい。
よろしくお願い致します。
2013/07/20(土) NY:AN:NY.AN
>>145
conv関数使って結果を確かめな
148デフォルトの名無しさん
垢版 |
2013/08/02(金) NY:AN:NY.AN
imagescで表示した画像中で、マウスを動かした軌跡の座標を取得して保存したいのですが、何か方法はありませんか?
function myBDCallback(src,eventdata)
set(src,'WindowButtonMotionFcn',@myBMCallback);
end
function myBMCallback(src,eventdata)
C = get(gca,'CurrentPoint');
C = round(C);
title(gca, ['(X,Y) = (',num2str(C(1,1)),',',num2str(C(1,2)),')']);
end
function myBUCallback(src,eventdata)
set(src,'WindowButtonMotionFcn','');
end
という風に関数を作ってみたのですが、座標をマトリクスに入れて吐き出すことが出来ません。
よろしくお願いします。
149デフォルトの名無しさん
垢版 |
2013/08/28(水) NY:AN:NY.AN
Matlab32bitをWindows8 64bitにインストールできるのでしょうか?
2013/08/29(木) NY:AN:NY.AN
俺は7だから知らないけどとりあえずインストールしてみたら?
151デフォルトの名無しさん
垢版 |
2013/10/03(木) 16:31:08.11
複数画像を1つのfigure内に表示する事はできますか?
例えば、I=imread('***.bmp');と読み込んで
それをJ=rgb2gray(I);と処理しなおした後に
左右に並べて比較したいのですが
2013/10/03(木) 22:40:54.71
subplot
2013/10/03(木) 23:14:57.43
>>152
どうもありがとうございます
subplot(2,1,1),imshow(I); subplot(2,1,2),imshow(J);
これで並べる事はできましたが画像そのものが表示されるわけではなく
ヒストグラムのような座標軸が出てきました
画像とそのグレースケール化画像を並べるにはどう修正すればよいのでしょう?
2013/10/04(金) 00:59:47.87
カルマンフィルターが導入されたのはいつのバージョンからだっけ?
2013/10/04(金) 09:45:59.13
>>151
imshowpair(A,B,'montage')
156デフォルトの名無しさん
垢版 |
2013/10/16(水) 16:43:31.57
MATLABで、スクリプトでディレクトリ内のファイル名を変更していきたいんですけど、
ファイル名を変更する関数とかコマンドってありますか?。
教えてくださいm(__)m。
2013/10/17(木) 21:39:30.01
simulinkでシミュレーションの固定ステップ0.01秒にしてるのに
simulink上のプログラムembeddedファイルでなぜか0.005秒ごとに
ループが回るんだけど、なんでろ?
2013/10/26(土) 10:50:19.47
>>156
環境によって変わってくるけど、自分はsystemを使ってた。Unixだと
system(sprintf('mv %s %s', filename1, filename2));
みたいに。
159デフォルトの名無しさん
垢版 |
2013/10/28(月) 09:58:57.21
>>158
どうもありがとうございます!
2013/11/03(日) 02:29:31.41
>>155
いやimshow([A,B])だろ
2013/11/05(火) 23:45:57.61
画像サイズが同じならそれでもいいね
2013/11/16(土) 07:17:50.91
matlab上でのswitch case文とif else文は
分岐の数が同じ場合どちらが速度が速いですか?
163デフォルトの名無しさん
垢版 |
2013/11/24(日) 13:24:30.09
画像解析で色を検出して、例えば青系等で薄い青は低く、濃くなってくと高くなるっていうグラフを作りたいんですが、どうやって作っていけばいいんですかね
ガウス分布で表して、ポテンシャル場にする感じです

日本語下手で申し訳ない
2013/11/24(日) 19:23:37.72
>>163
色の濃淡はrgb色空間向いてないからluvとかにもっていってあとは指定色をしきい値処理して分布みたらいい気がする
ただやりたいことがあまり良くわかんないから参考にならないのかもしれない
165デフォルトの名無しさん
垢版 |
2013/11/25(月) 22:43:43.87
S-Functionについての質問です.

InputRealPtrsType u0 = ssGetInputPortRealSignalPtrs(S,0);
real_T *y0 = ssGetOutputPortRealSignal(S,0);

配列u0を配列y0にコピーする関数を別のcファイルに定義しようとしています.
プロトタイプ宣言と関数の引数はどのように渡せばいいのでしょうか?

プロトタイプ宣言を
extern void ORIGINALFCN(real_T u0,real_T y0[]);

関数呼び出しを
ORIGINALFCN(*u0[0],y0);

としているのですが”error C2109: subscript requires array or pointer type”
となり困ってます 御助力いただけないでしょうか
166デフォルトの名無しさん
垢版 |
2013/11/27(水) 10:46:04.28
165です
自己解決しましたー
2013/11/28(木) 21:39:25.53
ある座標(x1,y1)を通る直線を座標を中心に回転行列を用いて回転させたいんですが、
どうすればいいのか教えてください
2013/11/28(木) 23:48:23.88
(x1,y1)が中心となるように座標系(直線の式)を平行移動する
任意の角度で座標系を回転させる
169デフォルトの名無しさん
垢版 |
2013/12/01(日) 22:49:24.34
離散データを特殊関数でフィッティングする
やり方を教えて下さい。
よろしくお願いします。
2013/12/01(日) 23:36:03.84
lsqcurvefit
2013/12/04(水) 04:11:20.84
mesh関数のview(2)で
連続的に変化する複数のグラフを作ったのですが
これをgif化するにはどうしたらできますか?
2013/12/04(水) 04:11:53.13
グラフ→マップ図
173デフォルトの名無しさん
垢版 |
2013/12/05(木) 17:39:46.79
170さん、ありがとうございます。
lsqcurvefitはネットで使い方が
書いてあるのですが、使い方がよくわかりません。
ちなみに、xdataとydataは同じ大きさのベクトル
なのですが、初期値x0の意味がよくわかりません。
ちなみに、ベッセル関数で離散データをフィッティング
したいです。
2013/12/08(日) 02:15:45.83
>>168
>>167です。遅れましたが、ありがとうございました
175デフォルトの名無しさん
垢版 |
2013/12/16(月) 18:16:03.97
離散データの極値を求めたいのですが
ネットで調べるとSymbolic Math Toolbox
が必要とでてきました。
Symbolic Math Toolboxがなくても微分
できますか?
2013/12/17(火) 01:02:35.46
複雑じゃなきゃ関数の微分くらい手計算でやれ
面倒なら数値微分で近似
177デフォルトの名無しさん
垢版 |
2013/12/17(火) 01:38:40.35
今時微分積分もスマホのCASでも出来るよ
ネットでPCならSage math cloudがお勧め
2013/12/17(火) 11:41:27.66
>>175
オイラー法でいけんじゃね?しらないけどww
2013/12/18(水) 01:04:37.19
単純に数式計算がしたいならフリーのmaximaでも使えば?
2013/12/19(木) 04:20:30.18
学生版では配列のサイズに制限があるようですが
オプション関連でこの配列制限が影響するオプションはありますか?
SimscapenやSimElectronics,SimPowerSystemsに影響があるか知りたいです
2013/12/20(金) 21:58:08.76
ある行列testからゼロ以上の最小値を得たい場合、
findをどのように使えば良いでしょうか。

[r, c] = find(test == min(test(:)) &amp;&amp; test >= 0);

という書き方はできないようで…
2013/12/20(金) 22:21:38.61
min( test(test>=0) )
2013/12/22(日) 02:39:15.24
>>182
大変参考になりました
ありがとうございます
184デフォルトの名無しさん
垢版 |
2014/01/26(日) 22:02:35.70
ポップアップメニューの中身を可変にしたいんですけど可能ですか?
ファイルを読み込み、それによってポップアップメニューの中身の項目数が
3個だったり、10個だったりと変化するのですが、うまくいきません。

あとfigure1からfigure2を呼び出すことはできますか?
figure1がメインの画面、figure2がプロパティの画面になります。
引数付きで呼び出したいのですが、やり方がわかりません。

わかる人、よろしくお願いします。
185デフォルトの名無しさん
垢版 |
2014/01/26(日) 23:24:39.34
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwww
2014/01/27(月) 16:18:59.66
関数定義の方法について非常に困っています。どうかお助けください。

入力変数にx,y(サイズN)を取るN元連立非線形方程式F_i(x,y)=0 (i=1,2,...N)があり、
ワークスペースに測定によって得られた既知の変数xの値x_measuredがあります
この時F_i(x_measured,y)=0は(yについて)fsolveで解くことができるかと思うのですが、
F_i(x_measured,y)=0の上手い定義の仕方が分かりません

最も愚直にはワークスペース上のx_measuredの値を見ながら、
function F = fun(y)
F = [f_1(x_measured,y); f_2(x_measured,y); ... ; f_N(x_measured,y)]
end
と関数定義してスクリプトで"fsolve(@myfun, y0, ... )"とすれば一応解けますが、
これではx_measuredが変わる度にfunctionの定義しなおさなくてはなりません
(実際問題Nは非常に大きく、また入力はx,yだけではないのでほぼ不可能です)

できれば関数の定義は次のように
function F = fun(x,y)
F = [f_1(x,y); f_2(x,y); ... ; f_N(x,y)]
end
としておいて、fsolveに受け渡す際に"fsolve(@myfun(x_measured,y), y0, ... )"
のような書き方ができれば非常に嬉しいのですが、可能でしょうか?

もし可能であれば、関連するドキュメントや簡単な例など紹介していただければ幸いです。
2014/01/27(月) 22:28:34.31
関連するドキュメントと簡単な例
ttp://www.mathworks.co.jp/jp/help/optim/ug/fsolve.html
2014/01/28(火) 00:30:34.29
調べたところ、無名関数を使えば良いっぽいです
何とか解決できそうなので、もう少し頑張ってみます
ttp://www.mathworks.com/matlabcentral/answers/28728-fsolve-function-with-values-read-from-the-workspace
2014/02/01(土) 12:53:34.55
FFTしたwavファイルの周波数をグラフにプロットしているのですが縦軸が五線譜に見えるように
「縦軸を(12√2)*n毎に目盛りを配置」尚且つ「目盛り同士が等間隔」
になるよう表示するやり方はありますか?

またmatlabではなくscilabでプログラムしているので差異があればそこも教えてほしいです

答えていただける方がいましたらもう少し詳細をお伝えしますのでお願いします
2014/02/01(土) 13:30:36.68
matlabのプロットならわかるがscilabは知らん
2014/02/01(土) 13:36:51.58
>>190
分かりました
ではmatlabのままで構いませんので教えていただけないでしょうか?
2014/02/01(土) 16:39:06.25
目盛り幅は基本的に等間隔
目盛りを手動で指定するにはytickをいじる
ttp://sach1o.blog80.fc2.com/blog-entry-58.html
2014/02/08(土) 13:13:23.34
仕事でやむを得ずMATLABを使用しているが、
言語仕様が酷すぎてストレスが溜まる
2014/02/08(土) 14:46:16.67
どういう点がストレス?
2014/02/09(日) 11:07:55.88
数値計算にはかなり広く使いやすい仕様だとおもうけどな
2014/02/12(水) 20:46:40.36
特にセル配列周りは頓珍漢仕様
2014/02/12(水) 21:25:06.09
たしかに仕様は変だけどセル配列ってそんなに多用するかな
それよりも文字列をシングルクォートで囲むことが変態的
行列転置と被るからダブルクォートにしてくれりゃいいのに。どうせ使ってないんだし
2014/02/13(木) 23:56:01.06
コンパイラでスタンドアロンアプリを作ろうとすると
セル配列を使う場面は結構あるのよ
2014/03/04(火) 16:43:10.80
MATLAB Coderを使ってC言語にする時、複数のfunctionAがfunctionBを呼び出す場合はどうやればいいですか?
教えてください。

例えば、fprintf(1,'Hello¥n');を実行するfunction hello()をmainから呼び出すとしたら
codegen mainとすると
「このテキストは、空でない最上位の式を含んでいます。それはスクリプトのようです。」とエラーが出てしまいます。
2014/03/25(火) 03:00:28.60ID:P9aZrDFk
質問です。
例えば、
A=cat(3, [1 2 0 ; 0 5 6 ; 0 8 9], [1 1 1 ; 1 1 1 ; 1 1 1], [2 2 2 ; 2 2 2 ; 2 2 2])

という行列Aがあるとして、
index=find(A(:,:,1)==0)

このindexを利用して、A(:,:,1)の0の位置と同じ、A(:,:,2)およびA(:,:,3)の要素をxに置き換えて、
A=
1 2 x
x 5 6
x 8 9

1 1 x
x 1 1
x 1 1

2 2 x
x 2 2
x 2 2

という形にしたいのですが、うまい方法が思いつきません。

ご助言お願いします。
201デフォルトの名無しさん
垢版 |
2014/04/01(火) 22:46:42.16ID:yGT6IIrw
初心者ですが、MATLABをつかってリアプノフ指数を求めることはできるでしょうか?
202デフォルトの名無しさん
垢版 |
2014/04/02(水) 04:38:59.48ID:OrQFRmy1
>>200
亀レスだけど
[row,col] = find(A(:,:,1)==0);
A(row,col,:) = x;
203デフォルトの名無しさん
垢版 |
2014/04/14(月) 01:11:48.38ID:pxE1iOpl
x軸の上下で異なる目盛り(例えば、下:秒、上:分、など)を付ける方法はあるのでしょうか?
もしご存知の方がいらっしゃいましたら、お教え頂けますと大変助かります。
初心者の質問で恐縮ですが、どうぞよろしくお願いします。
204デフォルトの名無しさん
垢版 |
2014/04/14(月) 22:43:23.43ID:vgwDadtz
matlabって固有値が重解もつときの固有ベクトル正しく求められるの?
Ver5.3くらいの時は求められないことが普通にあったけど
205デフォルトの名無しさん
垢版 |
2014/04/28(月) 17:03:08.35ID:cyIxQl90
MATLABでSNRを求めないといけないんですが全然進みません。
一応ここ
www.mathworks.com/matlabcentral/fileexchange/35479-stochastic-resonance-in-the-duffing-oscillator-with-matlab/content/runduffsr.m
のプログラムを基にしたいんですが・・・
206デフォルトの名無しさん
垢版 |
2014/07/22(火) 00:00:42.43ID:uPmBGPkd
scilabからの関数のプログラムの移植で困ってます。

元のscilabプログラムは関数の引数に伝達関数を入力している部分がありますが、
matlabではうまくいきません。

必要なのは伝達関数の分母分子のsの係数だけなので、
それを抽出した配列を引数にしようとしてもダメでした。

どうすればよいでしょうか。
よろしくお願いします。
2014/07/23(水) 09:03:30.02ID:PTuSYeyO
>>206
Matlabでも同じことができるはずだけど、
コードをさらしてくれないと何も言えね。
208デフォルトの名無しさん
垢版 |
2014/07/26(土) 12:55:18.49ID:dzCSeMJD
ここはsimulinkの質問もOKなのですか?
2014/07/28(月) 22:21:24.90ID:eJ2F/7BI
forの中にこのような表記で計算結果を連続させアニメーションを表示させています。
この表示中に右ドラッグで自由に回転させたいのですが、回転しようとすると直ぐに元の位置に戻ってしまいます。
アニメーションを表示させながら回転させられる方法はないでしょうか?
drawlater();
delete();
surf(X,Y,Z);
xset('colormap',jetcolormap(32))
drawnow();
sleep(1);
210デフォルトの名無しさん
垢版 |
2014/07/28(月) 22:59:32.75ID:bBmcAOOY
>>207
function RetVal = calcParam(Gp, cont_model, ref_model)

となっていて、Gpがtf型です。
2つ目、3つ目の引数は整数。

関数を呼び出す際にGpにtf型の値を入れると、
『関数 'calcParam' (タイプ'tf' の入力引数) が未定義です。』
となります。

tf型の引数を与えられるんでしょうか。
それとも別の方法になるのでしょうか。
2014/07/29(火) 03:23:52.76ID:/VwBxSO0
MATLABで磁界のシミュレーションをしていきたいと考えています。
しかしネットで調べても
「マトラボで磁界のシミュレーションができるよ」
とは書いてあるものの具体的な方法を記載しているサイトが見つかりません

サイトに限らず書籍などでもいいので、参考になるものを知っている方がいらしたら教えてください。
よろしくお願いします。
212206=210
垢版 |
2014/07/30(水) 22:46:46.11ID:UoxpiG/j
functionを使わないことで、引数の件は本質的ではないですが解決(?)しました。


ところで、scilabではrootsで3次方程式を解いていて、
解がすべて小数で求められているのですが、
matlabでsolveコマンドでは解がatanやらcosやらが混ざった式の解として求められ、
この求められた式を計算してもscilabの解と一致しません。

3次方程式はテキストファイル上にscilab、matlabの2つを上下に並べて比較し、
同じであることを確認してあります。

matlabの方程式の変数はsymsで定義してあります。

何か考えられる原因はあるでしょうか。
あと解をすべて小数表示で求める方法はあるでしょうか。
2014/08/04(月) 17:32:53.13ID:gZr2A2LY
Octave環境において、他ファイルに記述した関数を利用するために
source ./functions.m

とsourceコマンドを用いていたのですが、
MATLAB環境に移行するにはどのように記述すればいいのでしょうか?

よろしくお願いします。
2014/08/22(金) 12:01:14.93ID:HUPln6ac
scilab+SIVPで画像処理をしてるけど処理が激遅で困ってます
┌──┐
│ ○ │→┌───┐
└──┘  └───┘
↑みたいな480×640の画像で、真ん中の円の部分を長方形の画像に展開したいんですが、
1ドットずつ長方形の枠に色情報を移すようなループ処理でやってるせいか超遅い・・・

円の半径は480/2の240として、円の最外周から30ドットくらいまでを長方形の画像に
展開するのに高速で終わるようにするにはどうしたら良いでしょうか。
今は下みたいな処理をしています。

MARUは480*640*3の配列で、SIKAKUは30*1500*3の配列
MARUで指定する座標の色情報を一つずつSIKAKUの配列に入れて行く
r=240 //半径r
while(r>210)  //半径の最大から最小値まで繰り返す(行置換)
  a=360    //360°ぐるりと回りながらドット取得
  j=1     //長方形展開後の色情報を格納する列番号
  while(a>0)  //角度を360から0まで繰り返す(列置換)
    x=round(px+r*cosd(a))  //○画像の抽出したいドットの横方向座標取得
    y=round(py+r*sind(a))  //○画像の抽出したいドットの縦方向座標取得
    SIKAKU(i,j,1)=MARU(y,x,1)  //R・G・Bそれぞれ円の座標の色情報を
    SIKAKU(i,j,2)=MARU(y,x,2)  //長方形の画像の指定する場所に格納
    SIKAKU(i,j,3)=MARU(y,x,3)
    j=j+1 //長方形展開後の次の色情報を格納する場所の列指定
    a=a-0.24 //0.24°角度を移動 (半径480ドットの円の円周≒1500ドット、360/1500=0.24)
  end
  r=r-1 //最外周から1ドットずつ内側に移動
  i=i+1 //長方形の画像の次の色情報を格納する場所の行指定
end

この後さらに複数の長方形に展開した画像を結合して長い円筒にカメラを突っ込んだような画像から、
円筒を唐竹割りしたような展開画像を作りたいけど良い方法有りますでしょうか。
2014/08/22(金) 12:25:56.14ID:75pQCJyb
>>213
MATLABなら関数が置いてあるパスを登録する

OCTAVEも同様に.octavercに
パスの一覧登録しておく方法がある
216214
垢版 |
2014/08/22(金) 16:30:56.24ID:HUPln6ac
まだループが有るけど大分早くなったので途中経過・・・
後は動画から連続する画像取得とその展開、展開画像の結合か・・・先は長い(´・ω・`)

i=1
r=240 //半径r
a=0:(360/1500):360
while(r>210)
  MARU_R=DR(round(py+r*sind(a)),round(px+r*cosd(a)))
  MARU_B=DG(round(py+r*sind(a)),round(px+r*cosd(a)))
  MARU_G=DB(round(py+r*sind(a)),round(px+r*cosd(a)))

  MARU_R=diag(MARU_R)'
  MARU_B=diag(MARU_B)'
  MARU_G=diag(MARU_G)'

  SIKAKU(i,ANS_yoko,1)=sum(MARU_R,'r')
  SIKAKU(i,ANS_yoko,2)=sum(MARU_B,'r')
  SIKAKU(i,ANS_yoko,3)=sum(MARU_G,'r')

  r=r-1
  i=i+1
end
2014/08/22(金) 23:53:25.04ID:4HOOsJza
quiver関数を使っているのに矢印がプロットされません
ためしにscale=0にして自動スケーリングを使用しないよう設定したら
矢印が表示されました。しかしすごい大きな矢印とちいさい矢印が複数ありました
これは大きいのと小さいのが入り乱れてるせいでスケールすると表示されなくなってしまうものなのでしょうか?
ネットで調べてもいまいちquiverを掘り下げて説明しているところがなかったので
こちらで質問させていただきます。
218デフォルトの名無しさん
垢版 |
2014/10/11(土) 19:15:16.44ID:wraC4XgO
textscanを使ってテキストファイル(.txt)のデータを読み取った後、読み取ったテキストファイルを削除したいと考えています
しかし、textscan後にdeleteを使ったり、手動で削除しようとすると「MATLABによってファイルは開かれているため、操作を完了できません。」
と表示され、削除できません。
現状では一度MATLABを再起動してからテキストファイルの削除を行っているのですが、再起動せずにMATLABからテキストファイルへの読み込みを終了させるコマンドはないでしょうか
2014/10/12(日) 13:17:28.68ID:r9knvxjB
>>218
fclose()やってないからじゃないの?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況