Change variable name in plot

28 ビュー (過去 30 日間)
Gabriele Curcio
Gabriele Curcio 2022 年 5 月 5 日
編集済み: Stephen23 2022 年 5 月 5 日
I have these variables as a double:
time; run_0; run_1; run_3; ...; run_23
how can I plot them without rewriting everytime the function plot?
The idea is:
for i = 0:23
plot(time, run_i); %index 'i' to change dynamically
hold on
end
I do not know how to write the index 'i'.
  7 件のコメント
Stephen23
Stephen23 2022 年 5 月 5 日
編集済み: Stephen23 2022 年 5 月 5 日
"Yes I have imported these variables using LOAD."
Good, now we are getting somewhere. Always LOAD into an output variable:
S = load(..)
All of the loaded variables are fields of the scalar structure S. Note that you can easily obtain the fieldnames
C = fieldnames(S)
and then loop over them (or just generate them yourself e.g. using SPRINTF) and use dynamic fieldnames, for example to access the 2nd field of the structure:
S.(C{2})
How many variables are in each MAT file? (Or are you unfortunately using LOAD to import textfiles?)
Please upload your data files (two or three, not all) by clicking the paperclip button.
Gabriele Curcio
Gabriele Curcio 2022 年 5 月 5 日
Ok, I manage to get the expected result! Thank you very much

サインインしてコメントする。

採用された回答

Constantino Carlos Reyes-Aldasoro
Constantino Carlos Reyes-Aldasoro 2022 年 5 月 5 日
As mentioned before, this is not the best way to handle your data, BUT you are where you are, so to be able to use the names run_0, run_1, etc you need to concatenate strings:
for i =0:10
name = strcat('run_',num2str(i))
end
name = 'run_0'
name = 'run_1'
name = 'run_2'
name = 'run_3'
name = 'run_4'
name = 'run_5'
name = 'run_6'
name = 'run_7'
name = 'run_8'
name = 'run_9'
name = 'run_10'
Further, do not use i for a counter, i can be used for imaginary numbers, better to use a sensible name like "counterRuns" or something that has a meaning.
Hope this solves your problem
  1 件のコメント
Stephen23
Stephen23 2022 年 5 月 5 日
編集済み: Stephen23 2022 年 5 月 5 日
"...you need to concatenate strings"
A more efficient approach is to use SPRINTF:
sprintf('run_%d',i)
or use the STRING class:
"run_" + i

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by