0

たとえば、整数として入力されたユーザー入力を取得し(45697)、最初の 2 桁を配列、ベクトル、または などの何かに格納して、( 4 5 6 9 7 )関数呼び出しを使用して最初の 2 つの値をチェックし、(4 5)実行できるようにします。それらの計算。

問題: 最初の 2 つの値を復元する方法がわかりません。

単純な関数呼び出しはありますか? または、最初に入力を任意の配列として保存してから、最初の 2 つの値を抽出する必要がありますか?

4

3 に答える 3

1

文字列への/からの変換を使用して簡単に実行できます。

>> x = 45697; % or whatever positive value
>> str = num2str(x);
>> y = [str2num(str(1)) str2num(str(2))]

y =

     4     5

これは、数値が正であることを前提としていますx(負の場合、最初の文字は数字ではありません)。あなたのコメントによると、それは電気抵抗を表しているので、そうです。

于 2013-11-02T15:27:11.227 に答える
0

文字列ベースのアプローチに問題はありませんが、すべての数字を取得するための数学的な解決策を次に示します。

>> x = 45697
x =

       45697

>> numDigits = floor(log10(x)+1)
numDigits =

     5

>> tens = 10.^(1:numDigits);
>> digitArray = fliplr(floor(mod(x,tens)./(tens/10)))
digitArray =

     4     5     6     9     7

この方法の要点は、mod一度に上位の桁を 1 桁ずつ切り落とし、新しい最初の桁を 1 の位にシフトし、最後に切り捨ててその位置の整数値を取得することです。

OP の場合、必要な値はdigitArray(1:2).

于 2013-11-02T18:23:09.363 に答える