Looping the data along with deliminaters (please find the code below)
1 回表示 (過去 30 日間)
古いコメントを表示
I have to read data from the serial port multiple times like
A = fscanf(t)
B = fscanf(t)
C = fscanf(t)
D = fscanf(t)
E = fscanf(t) and so on i had to do it manually. so i tried the code below for making it simple, and also i have deliminaters for example M and L
n = 10000;
% while loop execution
while( n < 10000 )
A= fscanf(t);
end
but it is not working could any one please help me with the same
3 件のコメント
Bob Thompson
2019 年 2 月 19 日
Do you know how many sets of data you're going to get? If so, yes it is possible to use a for loop. If not, a while loop is likely a better option.
回答 (1 件)
Bob Thompson
2019 年 2 月 19 日
編集済み: Bob Thompson
2019 年 2 月 19 日
You were on the right track with your loop that you had already, the biggest thing would be to add an index.
i = 0; % Initalize your index
while n < 10000; % Loop break condition
i = i+1; % Change index to next value
A(i) = fscanf(t); % Record data to index
n = ... % You need to define n. How will you break your loop? Check for end of data set maybe?
end
3 件のコメント
Stephen23
2019 年 2 月 20 日
@Rakesh Yadav Kodari: the default format for fscanf for serial objects is '%c'. As far as I can tell, this means that you could easily have multiple characters. Multiple characters cannot be allocated to one element of a char/numeric array. You could easily use a cell array, or check the size of the output before allocating to the array, or perhaps you just need to specify the format string to convert the data to numeric: which of these you need depends on your data and your algorithm, which you have not told us about.
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!