我有一個帶有5個字段('a','b','c','d','e')的1x1 Matlab結構。每個字段包含某種數據(這對我的問題並不重要),我想從結構中提取每個值並將其分配給一個名爲字段的變量。任何想法的代碼將做到這一點?將結構體值提取到名爲字段的變量中
0
A
回答
3
假設s
是你的結構
cellfun(@(x) assignin('base', x, s.(x)), fieldnames(s));
不過,我沒有看到一個很好的用例爲這是已經被gnovice提及。
1
如果你知道什麼是要創建的變量,那麼你可以寫(假設s
是你的結構):
C = struct2cell(s);
[a,b,c,d,e] = C{:};
否則,您需要創建未聲明的新變量,程序運行(使用時assignin
命令@Vahe-Tshitoyan answer),這是一個壞主意。
3
雖然它通常是而不是當您已經將數據整齊地存儲在結構中時,將數據分散到一堆變量中的最佳實踐是將結構字段移動到不需要硬編碼的變量的簡單方法你的領域/變量的名稱將使用save
和load
命令,像這樣:
s = struct('a', 1, 'b', 2, 'c', 3); % A sample structure
save('temp.mat', '-struct', 's'); % Save fields to a .mat file
clear all % Clear local variables (just for display purposes)
load('temp.mat'); % Load the variables from the file
whos % Display local variables
Name Size Bytes Class Attributes
a 1x1 8 double
b 1x1 8 double
c 1x1 8 double
臨:這是很容易的,適用於任何結構。 Con:它涉及將數據移入和移出文件。
相關問題
- 1. 如何將變量設置爲結構體的名稱?
- 2. 如何在swift中獲取結構體中的變量名?
- 3. 如何將FParsec結果值提取到FSI中的變量
- 4. 爲結構中的變量賦值
- 5. 將字符串解析爲結構體變量
- 6. IDL:使用存儲在變量中的字段名稱訪問結構字段?
- 7. 變量作爲字段名
- 8. 獲取結構的字段名稱
- 9. 將組變量轉換爲C中的結構體或容器
- 10. 增加CKRecord變量中的字段值而不提取?
- 11. 如何命名爲結構體的變量
- 12. 提取賦值的變量名
- 13. 如何將數組(double)作爲字段添加到結構變量?
- 14. Python字典到變量賦值基於鍵值爲變量名
- 15. 將初始值設置爲c中結構的字段?
- 16. 如何從值爲1的表中提取字段名稱?
- 17. 指向結構,字段莫名其妙地改變值
- 18. eclipse shorcut將字符串值提取到本地變量
- 19. 只有變量名稱爲字符串時獲取變量值
- 20. 任何方式從字符串值中提取變量名稱?
- 21. 將變量添加到MySQL中的當前值字段中
- 22. Matlab:結構中變量的名稱
- 23. 提取字母的結構
- 24. 讀取.csv文件並將值存儲到向量和結構體C++中
- 25. 變量值提取
- 26. 提取字段值
- 27. 提取字段的值,並將其應用爲CSS顏色值
- 28. 如何從xml中將值提取到sql變量中?
- 29. 如何從數組中將值提取到變量中?
- 30. 從共享內存中讀取可變數量的結構體
就這麼簡單:'a = yourStruct.a'。等等其他領域。 – kostek
您是否想要將其推廣到任意數量的任意命名的字段?將值存儲在一個結構中可能會更好,因爲它比一堆變量組織得更好。 – gnovice
我想自動執行 – pyigal