matlabでlongstringを解析していますが、intでstr2numを使用すると機能せず、代わりに奇妙な中国語またはギリシャ語の記号が出力されます。
satrec.satnum = str2num(longstr1(3:7));
文字列として出力して確認しましたが、正常に動作しますが、intに変更しないと後で計算に使用できません。私の文字列の3から7の文字はintです(例:8188)。私の弦がdoubleの場合は機能するように見えるので、私はこれを試しました:
satrec.satnum = longstr1(3:7);
satrec.satnum = strcat(satrec.satnum,'.0');
satrec.satnum = str2num(satrec.satnum);
fprintf('satellite number : %s\n',satrec.satnum);
しかし、それは同じ奇妙なシンボルを出力します。誰かが私に何ができるか知っていますか?
これは、NORADの2行要素データのように見えます。その場合、非ASCII文字が存在してはならないため、ファイルエンコーディングはUS-ASCIIまたは事実上UTF-8です。
あなたの問題はこの行にあるようです:
fprintf('satellite number : %s\n',satrec.satnum);
satrec.satnumは整数ですが、フォーマット文字列に%s文字を使用して出力しているため、Matlabはそれを文字列として解釈しています。これを次のように置き換えます
fprintf('satellite number : %d\n',satrec.satnum);
正しい結果が得られます。
追加するために編集
Matlabは実際、文字列をintに正しく変換しました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加