簡體   English   中英

Matlab: Select 一個變量名並找到對應的值

[英]Matlab: Select a variable name and find the corresponding value

有人可以解釋一下我如何在 = 符號后得到一些特定的值嗎? 輸入文件是.subvar 文件格式。 我不知道如何跳入正確的行和列來獲取值。 您是否有針對此類問題的 matlab 教程鏈接。

例如,我需要兩個特定值(在 = 符號之后): $_Wk1_lr_m 和 $_Wk1_voll_m 的值

!file.version=1.543! 
! Testautomatisch 

subvargroup.begin ($G_Wk1)   
  subvar(      $_Wk1_lr_C_x,                                   str = ' 0.019 ' ) 
  subvar(      $_Wk1_lr_m,                                     str = ' 15601 ' )               ! [kg] lr  
  subvar(      $_Wk1_lr_C_y,                                   str = '-0.007 ' ) 
  subvar(      $_Wk1_lr_C_z,                                   str = ' 1.644 ' ) 
  subvar(      $_Wk1_voll_m,                                   str = ' 33690 ' )               ! [kg] voll 
subvargroup.end   ($G_Wk1)

在此處輸入圖像描述

獲得正確的行和正確的列的第一步是什么? 謝謝你,待在家里:)

逐行讀取文件,匹配行格式並使用正則表達式regexp提取值

fid=fopen('mydata.subvars','rt');
res=struct;
while(~feof(fid))
  line=fgetl(fid);
  if(regexp(line,'^\s*subvar\(','once'))
     val=regexp(line,'\$_(\w+),\s*str\s*=\s*''\s*([0-9.-]+)\s*','tokens');
     if(length([val{:}])==2)
        res.(val{1}{1})=str2num(val{1}{2});
     end
  end
end
fclose(fid);

這是結果

>> res

res = 

    Wk1_lr_C_x: 0.0190
      Wk1_lr_m: 15601
    Wk1_lr_C_y: -0.0070
    Wk1_lr_C_z: 1.6440
    Wk1_voll_m: 33690

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM