0

Ok。私はまだMatlabにかなり慣れていませんが(独学しました)、簡単な質問があります。1x6だから私はマトリックスが以下のようになることを望んでいました:

0

0

1

0

321, 12      <--- needs to be in one box in 1x6 matrices

4,30,17,19   <--- needs to be in one box in 1x6 matrices 

これを行う方法はありますか、それともそれらをすべて別々のボックスに書き込んで1x10マトリックスにする必要がありますか?

私のコード:

event_marker = 0;
event_count  = 0;
block_number = 1;

date = [321,12] % (its corresponding variables = 321 and 12)

time = [4,30,17,19] % (its corresponding variable = 4 and 30 and 17 and 19)
4

3 に答える 3

3

したがって、私があなたを正しく理解していれば、6 つの要素を含む配列が必要です。そのうちの 1 つの要素は に等しく1、別の要素は配列[312,12]であり、最後の要素は配列[4,30,17,19]です。

これを達成するために、行列とセル配列の 2 つを提案します。

セル配列

Matlab では、cell配列は任意の型のデータのコンテナーです。中かっこを使用して定義します (行列のブロック中かっことは対照的に)。たとえば、

C = {'test', rand(4), {@cos,@sin}}

文字列 ( C{1})、通常の行列 ( C{2})、および関数ハンドルを含む別のセル ( C{3}) を含むものです。

あなたの場合、これを行うことができます:

C = {0,0,1,0, [321,12], [4,30,17,19]};

またはもちろん、

C = {0, event_marker, event_count, block_number, date, time};

行列

使用する場所によっては、通常の行列でも十分な場合があります。

M = [0  0  0  0 
     event_marker  0  0  0 
     event_count  0  0  0
     block_number  0  0  0 
     321 12  0  0
     4 30 17 19];

パディングが必要になることに注意してください (つまり、何らかの方法で右上にゼロを追加する必要があります)。それを行う方法はたくさんありますが、「それは演習として残します」:)

繰り返しますが、それはすべて、どちらがより簡単になるかによって異なります。

于 2013-04-10T15:04:47.467 に答える
0

dateおよびtime変数が実際に日付 (日数、月数、年数) と時間 (時間、分、秒) を表す場合、それらは 1 つまたは 2 つの数値にまとめることができます。

DATENUM関数を調べます。たとえば、[2013, 4, 10]2013 年 4 月 10 日を表す のようなベクトルがある場合、それをシリアル日付に変換できます。

daten = datenum([2013, 4, 10]);

1 年に日数があれば問題ありませんが、月数は必要ありません。datenum([2013, 0, 300])も機能します。

時間は、日付と一緒にパックすることも、別々にパックすることもできます。

timen = datenum([0, 0, 0, 4, 30, 17.19]);

また

datetimen = datenum([2013, 4, 10, 4, 30, 17.19]);

このシリアル日付を取得したら、それを他の数値とともに 1 つのベクトルに保持することができます。

DATEVECおよびDATESTR関数を使用して、この数値を日付ベクトルまたは日付文字列に戻すことができます。

于 2013-04-10T15:44:12.150 に答える