[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 09/22 10:39 / Filesize : 230 KB / Number-of Response : 899
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2006/11/10(金) 11:28:22 ]
MATLAB 日本語版
www.cybernet.co.jp/matlab/
MATLAB 本家
www.mathworks.com/

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


671 名前:668 [2008/08/18(月) 11:29:38 ]
レスありがとうございます。

具体的に書くべきでした。
例えば、
1 4 6 8 4 6
4 5 1 9 0 7
4 0 9 4 1 6
4 7 5 9 0 2
とあった場合、3列目の9と4列目の2つの9、6列目の7が最大値(=極大値)
と考えたときです。
お願いします。

672 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 22:10:41 ]
座標が整数値でない画像データを可視化したいんですが、どうやったらいいですか?
データの形式としては(x, y)が座標、(R, G, B)が与えたい色として

x y R G B
0.1 -1.1 10 20 30
0.5 0.3 112 30 11
-2.4 3.2 3 15 205

のようにn*5(nは行数)のベクトルデータとなっています。
これを穴があってもいいから通常の画像のように可視化したいんです。

点ごとにプロットする色を変えたらいいのかと思ったんですがうまくいかなくて

673 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 22:58:01 ]
>>672
座標を例えば 1 - 128 に正規化して、I = zeros(128); 後は for ループで
x = data(n,1); y = data(n,2);
I(x,y,1) = data(n,3);
I(x,y,2) = data(n,4);
I(x,y,3) = data(n,5);
とでも格納しなおして imshow するとかそういう単純な話だろ?

>>671
matlab central れ。

674 名前:デフォルトの名無しさん [2008/08/19(火) 04:39:11 ]
ある関数Fの最適化問題を解きたいんだけど、Fがゼロになった瞬間に
最適化を止めて次のことをさせたいような場合、どうしたらいいですか?
最適化にはNelder−Meadを使いたいので、Fminuncより
Fminsearchを使いたいです。

Fの値は定義上0より小さくなることはないので、一度0がでてからさらに
パラメター空間でサーチするのは単なる時間の無題です。

Fminsearchのコードがわかれば外にIF節をつけれてFの値が
0になったところで止めさせられるものの、どうしていいかわかりません。


675 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:27:11 ]
A = [1 1 2 1 3 4 5 1 1 2 3 6]
みたいなベクトルがあって、[1 2] のある位置を知るのに、
for ループを使わずにすむ方法ってありますか?
matlab ならありそうな気がするのですが
B = [0 1 0 0 0 0 0 0 1 0 0]
が返ってほしい。

676 名前:672 mailto:sage [2008/08/19(火) 20:22:10 ]
>>673
即レスありがとうございます
ちなみに正規化ってどうやったらいいんでしょうか
xの列でソート→代入、yの列でソート→代入じゃ効率悪すぎですよね
手早くやれる方法はありますか?

677 名前:デフォルトの名無しさん [2008/08/19(火) 21:11:55 ]
1から100の整数をランダムに並び替えるプログラムを教えてください!

678 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 21:27:19 ]
>>677
宿題は自分でやれ

679 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:42:24 ]
>>677
randperm

>>676
ソート?なぜにソートが・・・・
low = [1 1];
high = [128 128];
[N, d] = size(data); % d == 5
mini = min(data(:,1:2), [], 1);
maxi = max(data(:,1:2), [], 1);
data(:, 1:2) = data(:,1:2) - repmat(mini, N, 1); % move min to 0
data(:, 1:2) = data(:,1:2) ./ repmat(maxi-mini, N, 1); % [0, 1]
data(:, 1:2) = data(:, 1:2) .* repmat(high-low, N, 1); % [0, high-low]
data(:, 1:2) = data(:, 1:2) + repmat(low, N, 1); % [low, high]
data(:, 1:2) = fix(data(:, 1:2)); % int



680 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 02:50:49 ]
すみません、どなたか>>665が分かる方いらっしゃいますか?
本質的には、いかにしてCallBack関数をまとめて設定するか、ということだと思います。

681 名前:668 [2008/08/20(水) 14:53:04 ]
>>673
matlab centralにあるということでしょうか?
探してみましたが、わかりませんでした。。
もしよければどれか教えてもらえないでしょうか?
お願いします。

682 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 15:05:44 ]
えー、なんで?極大値は英語にしたら extreme か extrema だよ?
extrema.m

683 名前:668 [2008/08/20(水) 23:06:13 ]
>>682
完全に見落としてました。。
これでいけそうです。
ありがとうございました!

684 名前:デフォルトの名無しさん [2008/08/21(木) 10:04:17 ]
for文を使わないことはできますか?

2次関数(ax^2+bx+c)を入力にして、総あたりでa,b,cのパラメータを推定する、というようなことをやっています。
入力をf(x)として、-5<x<5の範囲を見てるのですが、コードは
error=inf;
for a=-10:1:10
for b=-10:1:10
for c=-10:1:10
for t=-5:0.1:5
e=(f(t)-(a*t*t+b*t+c))^2;
if (error>e);
error=e;
end
end
end
end
end

というような感じになってます。これをfor文を使わないでコロンを使った形式にできるものなのでしょうか?
よろしくお願いします。



685 名前:デフォルトの名無しさん [2008/08/21(木) 10:07:19 ]
すみません、間違えてタブを使ってしまったので投稿しなおします
******

for文を使わないことはできますか?

2次関数(ax^2+bx+c)を入力にして、総あたりでa,b,cのパラメータを推定する、というようなことをやっています。
入力をf(x)として、-5<x<5の範囲を見てるのですが、コードは
error=inf;
for a=-10:1:10
for b=-10:1:10
for c=-10:1:10
for t=-5:0.1:5
e=(f(t)-(a*t*t+b*t+c))^2;
if (error>e);
error=e;
end
end
end
end
end

というような感じになってます。これをfor文を使わないでコロンを使った形式にできるものなのでしょうか?
よろしくお願いします。

686 名前:デフォルトの名無しさん [2008/08/21(木) 10:10:21 ]
スペースもダメみたいですね…みにくくてすみません。
よろしくお願いします。

687 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:16:19 ]
repmat を駆使して4次元配列にまでもっていけばきっとできる。
で、あとは min で argmin うけとる。

688 名前:684 [2008/08/21(木) 16:35:55 ]
>>687
ご指摘いただいた方法でできました。
ありがとうございます。

689 名前:デフォルトの名無しさん [2008/08/21(木) 21:09:03 ]
>>684って行列の中身が一緒じゃないんでしょ?
だったらrepmatじゃだめじゃね?
ってか俺も今
for a=1:10
for b=1:5
kotae(a,b)=a+b
end
end
って感じのやってるけど、これfor文じゃなくせるの?



690 名前:デフォルトの名無しさん [2008/08/22(金) 00:13:06 ]
matlab centralで拾ったファイルを動かそうと思ったんですが、
「500の最大の再帰呼出の制限達しました。制限を変更するには、・・・」
となって動きませんでした。
制限を2000あたりまで変更しても同じ結果で。3000くらいになるとMatlabが
強制終了してしまいました。
これ何か対処法ないでしょうか。。??

691 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 02:39:48 ]
mファイルの作成者に聞くべきじゃない?
つか、少しは自分でk

692 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 02:56:10 ]
>>689
なくせう。for 文使うとゲロのろいぞ matlab。

693 名前:デフォルトの名無しさん [2008/08/22(金) 09:31:00 ]
コロンでできるの?

694 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:26:09 ]
できる。
kotaeって10x5のマトリックスになるだろ?

695 名前:684 [2008/08/22(金) 17:33:09 ]
>>689
meshgridというのを使うとてっとり早いです。
行列にして掛け算する、ということです。
687さんがおっしゃった通り、repmatを使ってもできます。
というか、repmatを使ってmeshgridが実装されてるようなイメージです。

696 名前:MATLAB初心者 [2008/08/23(土) 12:06:04 ]
はじめまして。
MATLABをはじめたばかりの初心者なのですが、連番をつけるところで悩んでおります。
文字列の配列で0001、0002、..... 、9999のように整数で任意の桁数にしたいのですが
うまい方法はありませんでしょうか?

エクセルでやっていたときは、上記の場合であれば”000”という文字列と整数の値を結合し
左から4文字を切り出して使用しておりました。

MATLABでもエクセルでやっていたような力技でやるしかないのでしょうか?

もしご存知の方がおりましたら、ご教示いただけませんでしょうか?
よろしくお願いいたします。

697 名前:MATLAB初心者 [2008/08/23(土) 12:12:11 ]
申し訳ございません。
上記のレスで左から切り出していたというのは誤りで、右から切り出しておりました。

698 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:51:58 ]
>>697
ttp://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/?/matlab/support/manual/r13/toolbox/matlab/ref/sprintf.shtml

699 名前:MATLAB初心者 [2008/08/23(土) 15:46:04 ]
>>698

ありがとうございます。

大変申し訳ございません。私には、このページではsprintfでたとえば”1”を”00001”と定義する方法が理解できませんでした。
整数を5桁で表して、それを文字型にnum2strか何かで文字列に変換するようなことができるということでしょうか?

私の思い付きではstrcatをつかって696に書いたような力技で書く以外に方法がわかりません。

お手数をおかけしますが、ご教示いただいたページのどれを使用すればよいか教えていただけませんでしょうか?



700 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 16:25:44 ]
>>699
printf フォーマット
でぐぐればいろいろ解説があるよ。
C言語が元だけど自由度がかなり高いから覚えとくとよい

↓とりあえず解決策
str=sprintf('%05d',i)

701 名前:MATLAB初心者 [2008/08/23(土) 16:35:09 ]
>>700

取り合えずというか、そのものずばり私の欲しかった回答を書いていただいて、感謝の限りです。

お忙しい中、どうもありがとうございました。
これからも精進いたします。


702 名前:675 mailto:sage [2008/08/26(火) 03:23:35 ]
A = [1 1 2 1 3 4 5 1 1 2 3 6]
みたいなベクトルがあって、[1 2] のある位置を知るのに、
for ループを使わずにすむ方法ってありますか?
matlab ならありそうな気がするのですが
B = [0 1 0 0 0 0 0 0 1 0 0]
が返ってほしい。

703 名前:デフォルトの名無しさん [2008/08/27(水) 10:05:55 ]
findじゃだめ?

704 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 08:09:50 ]
俺の力じゃ5行が限界だった
x=find(A==1);
y=find(A==2)-1;
z=intersect(x,y);
B=zeros(1,length(A));
B(z)=1;
もっと簡単なのきぼん

705 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:26:43 ]
面白そうなので参加

((A(1:length(A)-1)+A(2:length(A))).*(A(1:length(A)-1)==1))==3

正の値で且つ後ろ一つは無視する前提
一般性があるかどうかは知らない

706 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:38:40 ]
size(A)も使ってみよう

707 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:15:31 ]
A(1:end-1)==1&A(2:end)==2

レベル低いなあ。
こんなのすらすっと出てこないってことは
よっぽど効率悪いコード書いてるんだろうなお前ら。

708 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:40:14 ]
煽るのは構わんがそれ全部ゼロになるぞ

709 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:46:06 ]
って1ズラしてるか
スマン



710 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 09:07:52 ]
MATLABの関数自体のコードを読んでみると
勉強になるんだけどな。

711 名前:デフォルトの名無しさん [2008/09/04(木) 13:25:51 ]
質問です。

MATLAB上で画像処理をする際に
画像のある画素(座標)を保存して
さらにその保存した座標のx方向成分だけ読み出すには
どういったコマンドを入力すればいいんですか?

712 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:42:08 ]
>>711
まず入門サイトでも読んだ方がはやくね?ってかはやい

713 名前:デフォルトの名無しさん [2008/09/04(木) 16:05:56 ]
2008からオブジェクト指向が充実したみたいで、
それについて詳しく解説してある本を知っていたら
誰か紹介していただけないでしょうか。
よろしくお願いします

714 名前:デフォルトの名無しさん [2008/09/08(月) 12:56:09 ]
誰か、MATLAB(2007b)で3次元の楕円球体の描き方教えてください。

715 名前:デフォルトの名無しさん [2008/09/08(月) 18:24:34 ]
定義したい変数名を、文字列を使って定義することは可能なのでしょうか?
例えば、
Data1 = 1;
Data2 = 2;



Data30 = 30;
と30個の変数を定義したいとき、for文を使って定義することは可能でしょうか?

716 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:43:57 ]
>>714
キーワードを英語でlookforするくらいはしようよ。

>>715
help eval


717 名前:デフォルトの名無しさん [2008/09/09(火) 11:36:43 ]
はじめまして、今matlabの勉強をしている者です。

matlabのエディットウィンドウで、文字の挿入ってどうやるんですか?
現状では入力してある行に文字を挿入すると後ろの文字が消えてしまい、
全文入力し直しになってしまうのです、これをwordなどみたいに
文字を挿入したら、文が自動で後ろに移動してくれるようにできないですか?

また、同様にスペースキーも文字間のスペースをあけてくれず
文字を消してしまうのですが?どうしたらいいですか?

OSは vinelinux4
matalab v7.0.1 SP1です

718 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:12:45 ]
MATLABっていうか
キーボードのinsert

719 名前:デフォルトの名無しさん [2008/09/10(水) 13:58:00 ]
GUIを作成して、
ボタンを押すとシミュレーションが実行するようにしたんですが、
GUIなしでコマンドから直接実行した場合だと160秒くらいで終わるのに、
なぜかGUIからだと260秒もかかるんですが、
なんでこんなにかかると思いますか?
やってることはまったく変わらないですが・・・。



720 名前:133.43.185.64 mailto:sage [2008/09/10(水) 21:20:24 ]
>>719
全然見当がつかん。
プロファイラを実行した状態で GUI 経由でシミュレーションを行って、
時間のかかっている箇所を割り出してから相談してもらった方がよいと思われ。

721 名前:デフォルトの名無しさん [2008/09/11(木) 00:44:20 ]
>>720
アドバイスありがとう。
実はこういう経験あまりしてなかったんで、
プロファイラとか使ったことなかったんです。
ちょっと調べて割り出してみます。

722 名前:初心者 [2008/09/11(木) 01:43:15 ]
非常に低レベルなことで申し訳ないのですが、
Cでいうポインタのような概念はMatlabにはないのでしょうか?


723 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:54:01 ]
>>722
ないはずだよ
wikipediaにも書いてある
まあ、google codeとかmatlab centralで検索すれば
自作のポインタ関数出て来ても可笑しくないけど

724 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 02:15:40 ]
>>722
デフォはポインタ
渡された変数を編集しようとした時点でコピーが始まる

725 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 06:15:09 ]
>>722
何をしたいのかをはっきりさせて
それをMATLABではどうやるのか、と考える方がいいよ。

他の言語のやり方をそのまま持って来ようとしても
そうは行かない場合は多い。MATLABに限らず。

726 名前:デフォルトの名無しさん [2008/09/14(日) 02:33:41 ]
質問です。

例えば
3,6,4,5,2
4,15,7,5,3
6,4,4,7,3

のような行列があってノイズで15だけ値が大きい場合には、
それを周りの数字に近い値に矯正(たしか平滑?)するにはどうすればいいですか?
自分が知ってるやり方だと、ノイズも含め全ての成分が平均化されてしまいます。
どうにかノイズ以外はそのままの値で、ノイズ部分だけを周りの値に馴染ませたいんです。

727 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 02:59:50 ]
10はノイズ? 13はノイズ?
15を適当に5とかにしたら「馴染んだ」ことになるの?

自分が何をやりたいかをまずは具体的にする。
君以外にそれがわかる人はここにはいないよ。

728 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 07:57:32 ]
実験データの改竄捏造でもしたいのかなw

729 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:03:36 ]
>>726
if ノイズ
   平滑
else
   なにもしない




730 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 07:18:58 ]
 ああ 

731 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 13:38:27 ]
>>726
新しいやり方を考えればいいだけ。

732 名前:デフォルトの名無しさん [2008/09/17(水) 23:20:14 ]
質問です。

Cのプログラム等に記載するための離散時間系のデジタル1次ローパスフィルタを作るためにMATLABでフィルタの係数を求めようとしています。

そのためのプログラムとして、サンプリングインターバル=6ms、フィルタ周波数=10Hzとして、
   omega = 2 * pi * 10
T = 1 / omega
sys = tf(1, [T, 1])
[num, den] = tfdata(sys)
[numd, dend] = c2dm(num, den, 0.006)
として求めると、y[n] = 0.6859 * y[n-1] + (1 - 0.6859) * x[n]という式が求められます。

一方で、連続時間系の1次ローパスフィルタの伝達関数(サンプリングインターバル=6ms、フィルタ周波数=10Hz) G(s) = 1 / (1+Ts) を手計算でz変換を行い、離散系のローパスフィルタの式を求めると、(T = 1 / omega、omega = 2 * pi * 10)
   y[n] = 1 / (1+omega*0.006) * y[n-1] + (1 - 1 / (1+omega*0.006)) * x[n]
となるため、値を代入すると、
   y[n] = 0.7263 * y[n-1] + (1 – 0.7263) * x[n]
となり、先ほどMATLAB関数から求めた式と乖離が出てきてしまいました。

そこで、有識者の方々にお聞きしたいのは
   1.そもそも上記のデジタル1次ローパスフィルタの作り方は間違っているのか?
   2.c2dm コマンドの中身がよくわからないが、これは計算誤差が出るようなものなのか?
   3.離散系に変換したシステムのボード線図を見て特性を確認したいのだが、その場合
     も連続系と同じく
          bode(numd, dend)
     でよいのか?

長文となってしまい、見にくくて申し訳ありませんがどなたか有識者の方がいらっしゃればご教授ください。

733 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 14:54:34 ]
簡単な計算ミスのような気もするのですが、、、

734 名前:デフォルトの名無しさん [2008/09/18(木) 22:11:28 ]
>>733
と言いますと・・・?

735 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 22:13:54 ]
周波数とインターバル(周期)とで混乱していない?
間違いを探したいのなら、
他の数字の組み合わせにしてみて、計算してみるのはどうでしょう?

736 名前:デフォルトの名無しさん [2008/09/18(木) 23:19:11 ]
>>735
すいません、だいぶ他の数字でもやってみたのですが・・・
基本的な結果としては、低周波(0.01Hz、1Hz)では値の乖離はほとんど見られないのですが、高周波になればなるほどどんどん値が離れていくということになっています・・・
なので、アナログからデジタルに変換するときの計算誤差なのではと思った次第なのですが・・・

           MATLAB計算値         手計算値
   0.01Hz      0.9996            0.9996
0.5Hz 0.9813            0.9815
5Hz 0.8282 0.8414
10Hz 0.6859 0.7260

どなたかご教授いただけると助かります



737 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 23:34:44 ]
>>736
サンプリングインターバルも変えてみたらどう?

738 名前:デフォルトの名無しさん [2008/09/19(金) 00:13:17 ]
変えてみた結果は以下の通りになりました。

             MATLAB計算値        手計算値
 0.5Hz  12msec      0.9630          0.9637
2Hz 24msec 0.7396 0.7683
0.01Hz 480msec 0.9703 0.9707
10Hz 480msec 0.0000 0.0032

という感じで、サンプリングインターバルが大きくなる、もしくは周波数が大きくなると乖離がどんどん大きくなるといった傾向が見られます。

そこで離散系に直したときのボード線図を見て、連続系のそれとの特性の違いを見たいのですが、離散系に直したシステム
     [numd, dend] = c2dm(num, den, 0.006)
     bode(numd, dend)
という見方でよろしいのでしょうか?明らかに異なった波形が出てくるので、離散系の場合はボード線図を違う見方で見なければいけないのかなと予想しているのですが。。。
見方がわかりませんので、もしご存知でしたら教えてください。


739 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 00:33:01 ]

ttp://www.ikko.k.hosei.ac.jp/joomla1506/matlab-topmenu-33/17-matlab20070307.html



740 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 00:35:38 ]
matlabをはじめたばかりなんですが質問です。
stem3でつくったグラフを等高線のグラフにそのまま変えたいのですが、
どなたかわかる方いらっしゃいましたらお願いします。

741 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 02:50:24 ]
ステムを輪切りにして上から見て、意味あるの?

742 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 11:49:33 ]
>741
値がどのように分布しているか等高線の方がわかりやすいと思い
変えたいのですが。

743 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 15:11:34 ]
>>742
matlab 等高線
でぐぐれ

744 名前:デフォルトの名無しさん [2008/09/30(火) 15:46:00 ]
GUIのプログラムについての質問です
ファイルguimain.m内で

handles.a=1;
guidata(hObject, handles);

とhandles.aを設定したとき
別のファイルgui2.m内で
handles.aを編集する方法はあるのでしょうか

function gui2(hObject,handles)
handles.a=2;
guidata(hObject, handles);

ではできませんよね?

745 名前:デフォルトの名無しさん [2008/09/30(火) 16:32:46 ]
効率はわかりませんが

function out = gui2(handles)
handles.a=2;
out = handles;

として、呼び出し側でguidata(hObject, handles); することで解決しました。

746 名前:t [2008/10/07(火) 19:46:19 ]
ベルヌーイの螺旋を描ける方いらっしゃいませんか?
困っています。

747 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:23:01 ]
描けるよ

748 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 10:33:41 ]
>>745
構造体使う必要がないならglobal宣言すれば簡単かと

749 名前:デフォルトの名無しさん [2008/10/19(日) 22:46:09 ]
z = f(x, y) を、3次元プロットしたいのですが、
どうやったらよいのでしょうか?

試しに

----------------------
z = [
0 0.1 0.3 0.5 0.3 0;
0 0.3 0.5 0.3 0.3 0;
0 0.5 1.0 0.7 0.5 0;
0 0.3 0.5 0.3 0.3 0;
0 0.1 0.3 0.5 0.3 0
];
[x, y] = size(z);
surfc(x, y, z)
----------------------

としたのですが、うまくいきませんでした。
おそらく行列のプロットを理解していない
と思うのですが・・・。
非常に低レベルな質問で申し訳ありませんが、
よろしくお願いします。




750 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 23:52:00 ]
mesh(z)でどうだ

751 名前:749 [2008/10/20(月) 00:01:45 ]
>>750

早速のご回答、ありがとうございます!
無事、3D plot をすることができました。
ありがとうございます!

752 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 17:54:34 ]
MATLABで式の簡単にする変形を一ステップずつやって
どうやって、変形して最終の形にするのか
見る方法ありませすか?

753 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:45:04 ]
意味がわからない。
mathematica?

754 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:47:52 ]
シンプリファイとかやるときの途中の式がしりたい。
シンボリックマスツールズの

755 名前:いかわ [2008/10/24(金) 15:35:48 ]
'"2008-09-23 02:30:00.1"' というフォーマットで書かれたストリングのセルから時間データを抽出するよいアイディアをどなたかご存知でないでしょうか?

もしも、''がなく、"2008-09-23 02:30:00.1" というフォーマットならば、sscanf(%d-%d-%d %d:%d:%d); によって時間データを抽出できるのですが。。

756 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 20:06:56 ]
日付の区切りがスラッシュにかわったりしただけでも
どうすればいいかわからなくなるのかなこういう人は・・。


757 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 04:01:54 ]
だれか Matlab compiler で matllab スクリプトコンパイルして、
C で使ったことある人いない?
ttp://www.mathworks.com/access/helpdesk/help/toolbox/compiler/index.html?/access/helpdesk/help/toolbox/compiler/f2-972343.html
これの通りやってみて、C をコンパイルできるようにまでは持って
いったんだけど、実行すると
libmatrixInitialization: unhandled exception
と出る。なにが足りないんでしょうかね?

758 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 05:49:28 ]


759 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 10:11:57 ]
>>757
回答にはなってないかもしれんけど、
おいらは、加えてBuilder for .NETを使ってMファイルを.NETコンポーネント化
してから、.NET系言語から、そのコンポーネント呼び出して使ってるよ。



760 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:42:45 ]
A=zeros(100000,100000);
だけでメモリ不足になります

余分な変数消去や仮想メモリ等をいじってみましたが効果はありませんでした
これを解消するには結局メモリ増設しかないのでしょうか?

761 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 16:38:49 ]
>>760
メモリ増設しても無理じゃね?
100000*100000って、数値だけで10Gになるからアクセスすることさえ厄介になってくると思う。
メモリ量的には更に数倍になるわけで、オンメモリで処理するのはどうせ無理だし。

762 名前:760 mailto:sage [2008/10/27(月) 18:09:13 ]
>>761さん

ご回答ありがとうございます
低レベルな質問ですみませんでした

このような行列はMATLABではそもそも扱えない(普通は扱わない)と考えてよいのでしょうか?
株価のシミュレーションでforを使うより行列を使った方が早いため
あのような行列が処理できると助かったのですが

763 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 01:30:51 ]
「普通のPC」では扱えない というのが正解かと。
10Gのメモリっていうといわゆるスーパーコンピューターの領域

764 名前:デフォルトの名無しさん [2008/10/30(木) 04:26:55 ]
たとえば*を増やしていって、
処理の進行状況を表示したいのですが、
改行を抑制する方法はありませんか?


765 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 21:20:25 ]
質問です
複素数の実部虚部それぞれ七桁で表示させたいのですが
zに複素数が入っていて
sprintf('%7f',z)
とすると実部だけが七桁で表示されてしまいます
どうしたらよいでしょうか?

766 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 22:41:17 ]
関数realとimagを使用して実部と虚部を取り出せばいいじゃない

767 名前:デフォルトの名無しさん [2008/10/30(木) 23:07:49 ]
サポート受けられないということは、ここの住人はコピーや労か

768 名前:デフォルトの名無しさん [2008/10/31(金) 00:06:48 ]
>>764
なんで今どうやってるのか書かないの?

769 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 14:35:01 ]
>>766
ありがとうございます
sprintf('%7f %+7f',real(z) imag(z)i)
のような感じでしょうか?
今試せる環境ではないのでiとかがどうなるのかよく分かりませんが・・・・・



770 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 19:10:46 ]
教えてください。
1辺の長さが1の正三角形を上下に並べて出来る平行四辺形をプロットして、
それに含まれるかどうかの判定をしたいのですが、判定条件はどうしたらいいでしょうか。
N個の点を行列で与えて、図形に入っていれば赤、入っていなければ黒という風に
表示させたいのです。
よろしくお願いします

771 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 19:25:24 ]
>>769
+の位置が不適切だけどそれを直せばイケル






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef