Saving a variable to a continuously changing file name

조회 수: 1 (최근 30일)
Calabrese
Calabrese 2015년 7월 27일
댓글: Calabrese 2015년 7월 30일
I would like to save a variable to a file/filename that relates to a previously loaded filename and repeat the code with a new file and save the variable to a different filename.
First I load in a file of choice
data = uigetfile('*.csv');
IP_Testing = xlsread(data)
example: BurnIn_2ndary_volt_curr_columnar_20150527_1940_IAM002.csv
Note: The datetime is in the filename
Then I reduce the file to a small matrix from data that I selected with the brushing tool. I assign that matrix to a variable.
details = [mean(IAMHS(:,2)) std(IAMHS(:,2)) min(IAMHS(:,2)) max(IAMHS(:,2));...
mean(CMP1(:,2)) std(CMP1(:,2)) min(CMP1(:,2)) max(CMP1(:,2));...
mean(CMP2(:,2)) std(CMP2(:,2)) min(CMP2(:,2)) max(CMP2(:,2));...
mean(PDU_OP(:,2)) std(PDU_OP(:,2)) min(PDU_OP(:,2)) max(PDU_OP(:,2));...
mean(ThreePThreeV(:,2)) std(ThreePThreeV(:,2)) min(ThreePThreeV(:,2)) max(ThreePThreeV(:,2));...
mean(TenV_PREF(:,2)) std(TenV_PREF(:,2)) min(TenV_PREF(:,2)) max(TenV_PREF(:,2));...
mean(TenV_REF(:,2)) std(TenV_REF(:,2)) min(TenV_REF(:,2)) max(TenV_REF(:,2))];
Now I would like to save the matrix (details) to a file name that relates to the previous loaded file (same datetime).
Examples: BurnIn_2ndary_20150527_1940.mat
-------------------------------------------------------------------------------------------------------------
The problem is I will run my code to retrieve another file similar to the first one I imported (different datetime).
Example: BurnIn_2ndary_volt_curr_columnar_20150528_1500_IAM002.csv
In the end I would like to save it to a similar name
Examples: BurnIn_2ndary_20150528_1500.mat
So I need my code that saves the file to be able to recognize a different file so that I can save it to a different filename. Being able to hold on to the datetime in the name is important for later plotting all of the new files I have saved

채택된 답변

Walter Roberson
Walter Roberson 2015년 7월 27일
You can use regexp() to extract portions of the name. For example,
regexp(filename, '\d+_\d+', 'match')
should extract the data and time substring.
The first part looks to be
regexp(filename,'^[A-Za-z0-9]+_[A-Za-z0-9]+', 'match')
  댓글 수: 11
Walter Roberson
Walter Roberson 2015년 7월 27일
Simplified version that does it all in one, producing a character string:
regexprep(filename,{'(?<=^[^_]+_[^_]+_)[^0-9]+','_[^_]+\.csv$'}, '')
Calabrese
Calabrese 2015년 7월 30일
Walter could you give me an example on how to extract different parts of this filename?
BurnIn_2ndary_volt_curr_columnar_20150528_1500_IAM002.csv
I also have a range3 (which is a character string that is equal to 2324_0226) that I would like to tack onto it. Examples of what I would like to extract from the original are below.
BurnIn_2ndary_volt_curr_20150528_IAM002_
BurnIn_2ndary_20150528_IAM002_
BurnIn_2ndary_20150528_
Now I would like to combine the existing string range3 to produce the following.
BurnIn_2ndary_volt_curr_20150528_range3_IAM002 or
BurnIn_2ndary_volt_curr_20150528_2324_0226_IAM002
BurnIn_2ndary_volt_curr_20150528_IAM002_2324_0226
BurnIn_2ndary_20150528_IAM002_2324_0226
BurnIn_2ndary_20150528_2324_0226

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

추가 답변 (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