我想產生以下內容:x和y的新值分別是-4和7,使用disp和num2str命令。我試圖做這個disp('x和y的新值分別是num2str(x)和num2str(y)'),但它給了num2str而不是適當的值。我該怎麼辦?我想顯示在matlab中它們的值的變量名稱和num2str表示
4
A
回答
6
就像Colin提到的,一個選項是使用num2str
將數字轉換爲字符串,手動連接所有字符串並將最終結果輸入到disp
。不幸的是,它可能會非常尷尬和乏味,尤其是當你有很多數字要打印時。
相反,您可以利用sprintf
的力量,這在MATLAB中非常類似於C編程語言。這會產生更短,更優雅的語句,例如:
disp(sprintf('The new values of x and y are %d and %d respectively', x, y))
您可以使用格式說明符控制如何顯示變量。例如,如果x
不一定是整數,則可以使用%.4f
而不是%d
。
編輯:像喬納斯指出的,你也可以用fprintf(...)
而不是disp(sprintf(...))
。
5
嘗試:
disp(['The new values of x and y are ', num2str(x), ' and ', num2str(y), ', respectively']);
實際上,你可以省略逗號太多,但恕我直言,他們使代碼更易讀。
順便說一下,我在這裏所做的是將5個字符串連接在一起形成一個字符串,然後將該單個字符串送入disp
函數。請注意,我基本上使用與數字矩陣相同的語法連接字符串,即[x, y, z]
。我能做到這一點的原因是matlab內部將字符串存儲爲數字行向量,每個字符表示一個元素。因此,上述操作實質上是將5個數字行向量水平連接起來!
還有一點:你的代碼失敗,因爲matlab把你的num2str(x)當作一個字符串,而不是一個函數。畢竟,你可能合法地想要打印「num2str(x)」,而不是使用函數調用來評估它。在我的代碼中,第一個,第三個和第五個字符串被定義爲字符串,而第二個和第四個字符串是評估爲字符串的函數。
相關問題
- 1. 如何在vb中顯示變量名稱不是它的值
- 2. 顯示變量的名稱和輸出?
- 3. xlswrite:在工作表名稱或某處顯示變量名稱
- 4. 我想顯示錶的值,而不是在laravel中顯示ID
- 5. 根據它們的位置在表格中顯示角度變量值
- 6. 數組內的變量名稱。改變它們的值PHP
- 7. 我想讓我的表格,當他們發送,它會自動顯示在表
- 8. 表示XML名稱和值
- 9. num2str在MATLAB
- 10. 顯示名稱的所有環境變量的C =價值+
- 11. 不想要選擇變量顯示值
- 12. 在輸出上顯示矢量的名稱。 Matlab
- 13. MATLAB GUI:在圖標籤中顯示變量的值
- 14. 帶有變量的DisplayAttribute名稱,動態顯示名稱
- 15. 使用lapply並顯示變量名稱
- 16. 枚舉顯示名稱 - 使用變量?
- 17. 在下面的代碼中,我想在x軸上顯示整體名稱nd不希望它們與圖例
- 18. 選擇表列名稱然後顯示它們
- 19. 我想顯示子類別名稱不是父類別名稱
- 20. 在名稱中顯示帶特殊字符「$」或「 - 」的變量
- 21. 我想在一個變量中顯示預定義的HTML
- 22. Intellij - 顯示和屬性值和名稱
- 23. 想要將數組的值相互組合並顯示它們
- 24. 在字段中顯示比名稱長三個字符的名稱變量
- 25. 變量不顯示的值
- 26. jmeter - 顯示變量的值
- 27. 顯示變量值?
- 28. 我想要顯示的圖表,並在其合併對它們進行比較
- 29. 我想繪製枚舉值(按它們的整數值),但在Silverlight Toolkit圖表控件中顯示字符串
- 30. 在Matlab中創建圖並在Java程序中顯示它們
+1非常整齊。我可能會從現在開始這樣做:-) –
@ColinTBowers:您可以使用'fprintf(...)'而不是'disp(sprintf(...))'。減少打字:) – Jonas
@Jonas +1,我也把它放入我的答案中。 –