Multiply certain column in a text file by a constant and have it implemented in text file itself

4 次查看(过去 30 天)
I need to multiply column 3 of the attached text file by 15 and have it write into the file itself (not just stay as a variable in matlab). How would I go about doing this?
File is attached.

回答(2 个)

Adam
Adam 2015-8-3
编辑:Adam 2015-8-3
doc textscan
doc fprintf
should do the job. I assume you know how to multiply by 15.
  4 个评论
jgillis16
jgillis16 2015-8-3
I posted my file, and gave instructions on what I am trying to achieve. With the necessary skills, that is enough specific information for some people.
Adam
Adam 2015-8-3
Well obviously if you just want others to do all the work for you. People usually get help quicker by posting their current solution and why it doesn't work, but if you aren't in a hurry someone might do all the work for you instead.

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2015-8-3
Updating a text file "in place" seldom works, even if you fseek() backwards to position yourself to the start of the field to write the variable back to. In order to update a text file "in place" what you output must have exactly the same number of characters as what is input. So for example if your field is 1.0 then because the output is 15.0 which takes one more output location, you cannot just overwrite starting from the 1.0 (not and have the overwrite work.)
  2 个评论
jgillis16
jgillis16 2015-8-3
Say I took the variable: GalList.ra = data{3}; and multiplied it by 15 which led to the variable: GalList.ra2 = GalList.ra * 15;
There would be no way to replace the original variable with the new variable with the same dimensions but just multiplied by 15 in the original text file?
Or, instead could I create a new text file with all the columns as the original text file but with column 3 modified by multiplying column 3 by 15?
Walter Roberson
Walter Roberson 2015-8-4
Given the text file you have now posted, No, you cannot update that file "in place", changing only the one column. You need to copy the file with the other fields remaining the same.
This is not a MATLAB restriction: this is fundamental to the way that operating systems implement text files as plain streams of characters, which has been the case for every file system for Microsoft Windows, for every file system (that I know of) for Linux, and for every file system for OS-X. One of the very first operating systems that MATLAB was ever supported on, DEC VMS, supported two ways of building text files, one of which did support updates in place, but MATLAB never supported that operating system feature (which was already falling out of favor by the time that MATLAB was first implemented.)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by