Finding category/string in table and converting values

조회 수: 5 (최근 30일)
Hao Tang
Hao Tang 2018년 2월 20일
댓글: Hao Tang 2018년 2월 21일
Alright so I'm having trouble knowing how to write a script to convert values.
Basically, I want to 1) Read in a file or Access a table 2) Find all the instances in the rows of the table with the string "CBEAM" 3) In said row, go to the 4th column and multiply that number by 0.5 4) Find all instances in the rows of the table with the string "CQUADR" 5) In said row, go to the 6th column and multiply that number by 0.6
So I can envision lots of if, then statements, which is totally fine. But I really don't know how to get started or what to write at all. Can anyone help

채택된 답변

Peter Perkins
Peter Perkins 2018년 2월 21일
Don't do that. Assume T is your data stored in a table containing a categtorical variable named SomeVarName whose categories are 'CBEAM' 'CQUADR', ... . Then
i = (T.SomeVarName == 'CBEAM');
T.SixthVarName(i) = .5 * T.SixthVarName(i);
etc.
  댓글 수: 3
Hao Tang
Hao Tang 2018년 2월 21일
Thanks Steven, this works well! I didn't realize it was that simple. I'll let you know if I have any further questions later.
Hao Tang
Hao Tang 2018년 2월 21일
Ran into an issue. So I have this 'PBEAM' info on two lines, with commas indicating new columns.
PBEAM,46,1,3.8750077499845,1.251e+00,1.251e+00,,1.001e+01,,+C1
+C1,0.9842519685,0.9842519685,-0.9842519685,0.9842519685,0.9842519685,-0.9842519685,-0.9842519685,-0.9842519685
In matlab, I can find the word 'PBEAM' go to the 4th column and replace the value by multiplying the value with a constant. However, it can't find the next line. EVEN if it did, the constant I multiply with is different, yet falls under the same column as the line above. Not sure how to solve this issue.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by