たとえば、整数として入力されたユーザー入力を取得し(45697)
、最初の 2 桁を配列、ベクトル、または などの何かに格納して、( 4 5 6 9 7 )
関数呼び出しを使用して最初の 2 つの値をチェックし、(4 5)
実行できるようにします。それらの計算。
問題: 最初の 2 つの値を復元する方法がわかりません。
単純な関数呼び出しはありますか? または、最初に入力を任意の配列として保存してから、最初の 2 つの値を抽出する必要がありますか?
文字列への/からの変換を使用して簡単に実行できます。
>> x = 45697; % or whatever positive value
>> str = num2str(x);
>> y = [str2num(str(1)) str2num(str(2))]
y =
4 5
これは、数値が正であることを前提としていますx
(負の場合、最初の文字は数字ではありません)。あなたのコメントによると、それは電気抵抗を表しているので、そうです。
文字列ベースのアプローチに問題はありませんが、すべての数字を取得するための数学的な解決策を次に示します。
>> 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)
.