• 締切済み

MATLABでHEXからbinaryさらにベクトルへの変換について

MATLABで例えばh'FFをb'11111111に変換した後、これをベクトル [1 1 1 1 1 1 1 1]に変換する効率の良い方法教えてください

みんなの回答

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.2

#01です。 そうですか。すみませんでした。 とすると、ループで回すのが一番でしょうか。 h = 'FF'; b = dec2bin(hex2dec(h)); for i = 1:length(b)  ans(i) = str2num(b(i)); end 以下のように1行で書けなくも無いですが、分かりにくいですし、処理も遅くなると思います。 h = 'FF'; b = dec2bin(hex2dec(h)); ans = str2num(reshape(cat(1, b, repmat(' ', size(b))), 1, length(b) * 2));

bonzomania
質問者

お礼

どちらでも、正しい結果が得られました 大変ありがとうございました

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.1

h = 'FF'; b = dec2bin(hex2dec(h)); ans = str2num(sscanf(b, '%c')); 現在環境が手元に無いので、動作は確認していません。 もし動かなければ指摘してください。

bonzomania
質問者

補足

残念ながら、実行の結果ベクトルではなく 11111111 のdecimal値でした

関連するQ&A

  • 交直変換器のdqベクトル制御について

    交直変換器のdqベクトル制御をMATLAB/Simulinkで行いたいと思っているのですがどのようにやれば良いですか? よろしくお願いいたします。

  • Matlabで行列の各行から同じベクトルを引く方法

    Matlabに関する質問です。 行列の各行に対して同じベクトルを減算する 簡単な方法があれば教えてください。 例えば A=[1,2;3,4;5,7]; x=[1,2]; などとなっているときに、 ans = [0,0;2,2;4,5] を返したいのです。

  • MATLABの射影変換についての質問です。

    MATLABの射影変換についての質問です。 1枚の画像に3×3の行列をかけて画像変換するつもりです。しかし、その画像自体は3×3ではないので、直接かけることができません。 そこで、3×3以外の画像行列に、3×3行列をかけて、変換された画像を表示する方法をお聞きしたいです。 どうぞ宜しくお願いします。

  • MATLAB 進数変換

    MATLABで、0.1260 -1.0190 1.0838 のような10進数を16進数に変換するにはどうすればよいのでしょうか?dec2hex()という関数を利用するのですが整数でないと使えないので整数に直すのでしょうか?

  • C言語→MATLABへの変換で、困っています。

    学生研究でMATLABを使用しています。 光学測定系で画像を取り込み、それを解析する実験を行っています。 MATLABはプログラム内の値の変更や処理の追加できることから 大変助かっています。 そこで、もともとはC言語でやっていた3種類の処理を 一つのMファイルで行いたいと思い。 只今、C→MATLAB変換するプログラムの書き直しを行っています。 そのうち2種のプログラムは行列の計算がメインだったため何とか Mファイルに書き直すことができたのですが、 最後のひとつが難しい関数らしきものが多く、 MATLABに書き直すことができるプログラムなのかもわからない状態です。 そこで、 ・C→MATLAB変換可能なプログラムか? ・書き直すにあたってどこを部分を直せばよいのか? をアドバイスいただけないでしょうか? ↓MATLAB化したいC言語ファイル http://karispace.web.fc2.com/cmat2.c 一枚のbmp画像から4枚のdatデータを出力するプログラムです。 C言語とMATLABの三ヶ月前に勉強して、使用しており、基礎がわかる程度です。 よろしくお願いします。

  • MATLABでの波形のフーリエ変換

    MATLABであるパルスのフーリエ変換をし、そのスペクトルを逆フーリエ変換をすると、元の時間波形に戻らなくて困っています。原因として考えられることとしてはどのようなことでしょうか? よろしくお願いします。

  • ローレンツ変換を使ってのベクトルの変換

    ローレンツ変換を使ってのベクトルの変換 下記(1)式で定義された4元ベクトルは、ローレンツ変換より (2)式に変換されます。 しかし、この(2)にどうすれば変換できるのか分かりません。 たぶんローレンツ変換(3)式を使うと思うのですが、どう適用していいか分かりません。 ちなみに、Φ0は静電ポテンシャル、A→はベクトルポテンシャルです。

  • ラスター ベクター変換

    紙に絵を描いた物をスキャナーでPCに取り込んだ後 ベクター形式に変換してくれるソフトウェア又はプラグイン って有りますか?ベクター変換後Photoshopで編集を 行います。CAD形式というのは検索に引っかかるのですが Photoshopで扱えるPSD形式などは無いのでしょうか?

  • MatLab userさんへ

    MatLabのC/C++ MathLibraryを使用したいと考えているのですが、 C++ Builderで普通に組み込むことはできないのですか? コンパイルコマンドは mbuild しかないのでしょうか?Builderのコンパイルボタンを押したら できる方法はないのですか? #include "matlab.h" を書くと、オープンエラーになってしまいます。 なかなかうまく表現できなくてすみません。 要するにDOSとMATLAB上でしか、コンパイルできないのでしょうか? ということです。

  • 3次元以上の直交変換(回転)を、2つのベクトルから求める方法。

    3次元以上の直交変換(回転)を、2つのベクトルから求める方法。 ユークリッド空間上で、例えば、ある2つのベクトルa,bが、 a = [1,0,0]; b = [0,1,0]; のように与えられたとき、aベクトルをbベクトルへ「視覚的に」重ね合わせる直交変換を探しています。 つまり、 b = Xa を満たす直交変換(回転行列)Xの求め方を探しています。 私のイメージとしては、3Dのポリゴンで描かれた自動車をマウスでグリグリ回転させるときに、正面を向いた状態から真横に向ける回転になるでしょうか。 無論、求める直交変換が一意に定まらないことは承知しております(ベクトルと垂直な面方向の自由度など)。また、sinやcosを使う方法は存じ上げておりますが、現在研究中のテーマに不適であるため、あえて利用しません。 どうにか、a,bの成分のみで直交変換を求める(または、直交変換の条件を決定する)一般的な方法があればご教授願います。 また、3次元よりも大きな場合に、例えば、 a = [1,0,0,0]; b = [0,1,0,0]; としたときの、aからbへの回転行列は自由度が高いのですが、 b = Xa を満たす回転行列Xをa,bを用いてどのように求めることができるのでしょうか。 支離滅裂な説明になっているかもしれませんが、もしご存知であればその参考となるURL等をご教授下さい。

専門家に質問してみよう