[英]Data format from Matlab workspace
我有以下格式的數據存儲在“ Matlab工作區”中:
data =
Columns 1 through 12
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
我想將其轉換為以下簡單形式:
-1-1-1-1-1-1-1-1-1-1-1-1
甚至以這種形式也可以接受:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
要等於此命令的結果的輸出數據:
Str =('-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1');
最初,我有以下格式的數據:“ type = Double”:
-1
-1
-1
-1
-1
-1
-1
-1
-1
我使用以下命令將此類型的double數據保存到變量中:
save data.txt data
然后,我使用以下代碼將該數據導入我的.mat文件中,以進行進一步的操作:
str = uiimport(); % import data
str = sprintf('%g', str); % or mat2str(str)
由此產生的數據類型是char類型,這是我進一步處理它所需的數據類型。 但這行不通。 但是,如果我直接將這些數據作為str =('-1 -1 -1 -1 -1-')放入我的.mat文件中; 有用。
我很難弄清楚為什么您提到num2str
或sprintf
不起作用。 我認為您嘗試將uiimport
的輸出直接傳遞給num2str
或sprintf
。 這給您下面的錯誤。 將其包含在您的問題中將非常有幫助。
使用sprintf時出錯
未為“結構”輸入定義功能。
uiimport
的輸出是一個結構,所有結果變量都作為字段。 因此,您需要像下面這樣處理此結構內的data
字段: S.data
。
這是代碼:
data = [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]'
save data.txt data % store data
S = uiimport(); % import data
str = sprintf('%g', S.data) % without spaces
str = sprintf('%g ', S.data) % with spaces
結果如下:
data =
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
str =
-1-1-1-1-1-1-1-1-1-1-1-1
str =
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.