我有1個字段的matlab數據1x617 stuct,每行有4個字段的1x1結構。我如何提取數據以獲得617數據的第4個字段,第4個字段是nx1的兩倍。由於在MATLAB中提取結構文件的第四個字段
回答
根據您的變量結構,可有時通過簡單地索引引用它解決。然而,要收集結構變量的數組中的一個特定字段數據的情況下,我會建議Matlab的FileExchange
這裏使用structval
是鏈接:
Struct 2 array or cell for desiginated fieldname
假設您的變量看起來像這樣
for idx = 1:617
b.a = ones(1,1)*idx;
b.b = ones(2,1)*idx;
b.c = ones(3,1)*idx;
b.d = ones(4,1)*idx;
s(1,idx).a = b;
end
上面的代碼建立一個1x617 stuct用1場,並且每行具有4個字段的1x1結構。在這裏我假設每行中第4個字段的名稱是相同的。
現在使用structval
r = structval(s,'d');
結果是1x617單元陣列。如果你碰巧各項指標(如NX1陣列)在有該字段相同的大小,然後用
r = structval(s,'d','collapse',true);
返回一個nx617陣列
嗨史蒂芬,我已經試過MSD = stuctval(diffAnalysisRes1,diffAnalysisRes1.fullDim.normDiffCoef) 但未定義matlab的函數或變量「structval」。我的數據是1x617結構1字段(文件名是「diffAnalysisRes1」)每行都有1x1結構與4個字段我想收集617(文件名「diffAnalysis1(1).fullDim.normDiffCoef」的所有第四個數據到「diffAnalysis1( 617).fullDim.normDiffCoef「 –
'structval'不是一個內置函數,它是Matlab的File Exchange上的一個免費的分佈式函數,您必須首先從文件exchagne下載'structval'並將其放在工作目錄中。你的第二個參數傳遞給函數必須是一個字符串變量(見我的例子)。所以它可能看起來像** structval(diffAnalysisRes1,「normDiffCoef」)** –
太感謝你了它的工作原理 –
- 1. 在Matlab結構中訪問結構中的特定字段
- 2. 在Matlab結構中找到字段
- 3. 從陣列的Matlab的結構提取單個結構
- 4. 在Matlab中讀取一個大的結構化文件
- 5. 子集中的每個字段的一個MATLAB結構
- 6. 提取段落R的第一個字
- 7. 如何動態訪問MATLAB中結構的字段字段?
- 8. 刪除空結構字段Matlab的
- 9. 當輸入第四個數字時提高文本框事件
- 10. 將matlab結構的函數字段與其他結構的字段綁定
- 11. 提取字母的結構
- 12. 除了結構的所有字段都保存到MATLAB中的文件中
- 13. 重命名MATLAB結構中的多個字段
- 14. 如何獲得MATLAB中結構的最後一個字段?
- 15. 如何在MATLAB中重命名結構數組中的字段?
- 16. 如何在matlab中的類/結構中運行foreach字段?
- 17. 結構字段是函數matlab
- 18. 在Matlab中清空結構數組的所有字段
- 19. 將結構體值提取到名爲字段的變量中
- 20. 在Matlab中總結特定的字段
- 21. 獲取結構中的字段列表
- 22. 提取字段中的第一個數字
- 23. 將字段添加到第三個和第四個字段中,然後減去這兩個字段
- 24. 從表字段獲取第四個最大記錄
- 25. 如何在Matlab中提取n * 1結構的特定字段中的所有值
- 26. 添加一個字段到一個matlab結構
- 27. 從matlab表中的結構中提取數據
- 28. 在單個文件遍歷中提取特定字段
- 29. 加載一個字段的結構變量(MATLAB)
- 30. 在MATLAB中對結構字段名進行迭代
這是很難理解在所有結構你可以嘗試寫作樹/文件夾結構嗎?這甚至可以幫助你更好地理解問題。 – mpaskov
,我有數據爲 'diffAnalysisRes1' 與1場1x617結構中,每一行是 'diffAnalysisRes1(1).fullDim' 到 'diffAnalysisRes1(617).fullDim' 1x1struct與4個字段。我想收集第4個字段的好名字是'diffAnalysisRes1(1).fullDim.normDiffCoef'到'diffAnalysisRes1(617).fullDim.normDiffCoef'。我希望有一個收集所有的617個數據由於第四場命令 –