2017-05-19 156 views
1

我在MATLAB一2417按50結構數組,我試圖找到一個量化的方式來轉換某些字段類型:如何更改結構數組中字段的數據類型?

  1. 我有字符列,我想轉換成字符串類型:

    [DataS.Sector] = string([DataS.Sector]); 
    

    但它不工作。我不想使用循環,因爲它花費了很多時間。

  2. 同樣的問題,但轉換爲數值。現在,我使用的一個循環,需要很長的時間:

    for i = 1:length(DataS) 
        for j = 1:numel(Vectorpour) 
        DataS(i).(DataSfieldname{k}) = str2double(DataS(i).(DataSfieldname{k})) 
        end 
    end 
    

我怎樣才能向量化每種方法?

回答

0

可以通過在一個cell array捕獲的字段值,執行轉換(使用stringstr2double),採用num2cell結果轉換爲單元陣列,然後覆蓋原來在您structure array的所有元件執行這兩種轉化字段使用了comma-separated list

% For part A: 
temp = num2cell(string({DataS.Sector})); 
[DataS.Sector] = temp{:}; 

% For part B: 
temp = num2cell(str2double({DataS.(DataSfieldname{k})})); 
[DataS.(DataSfieldname{k})] = temp{:}; 
相關問題