Hello
I have this data filed that I imported into a 831x1 matrix. The numbers in it are cumulative so I need to create a for loop that shows the difference between the row and the one before it so that I can have the pure added quantity in each row. If possible, I would like the first row to stay the same as it was in the imported file.
How do I do this?

댓글 수: 4

The file is now a single column matrix. A single column cumulative array. I'm supposed to create a for loop that simply shows the difference between rows.
Why are you sticking with a loop , is it your homework?
Yes. Nevermind I managed to do it.

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

 채택된 답변

Raj
Raj 2019년 4월 8일

0 개 추천

Suppose 'A' is your 831x1 matrix. Use this:
B=diff(A);
Apure=[A(1);B];
If you are specific with "for loop" then you can use this:
Apure=zeros(831,1);
Apure(1)=A(1);
for i=2:831
Apure(i)=A(i)-A(i-1);
end

댓글 수: 3

Mohamed Amine Mouajib
Mohamed Amine Mouajib 2019년 4월 8일
편집: Mohamed Amine Mouajib 2019년 4월 8일
This doesn't work?
I ended up using
for m=1:length(B)
C=diff(B)
end
given that A was the file matrix, but B is A that starts with a zero column)
It worked
madhan ravi
madhan ravi 2019년 4월 8일
편집: madhan ravi 2019년 4월 8일
@Mohammed: Why is there a loop in your code?, even without the loop you would get the same result. Basically you are just repeating the same calculation over and over again.
It's supposed to be a loop. The reason I added C is because I have to use it in a calculation.

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

추가 답변 (1개)

Mohamed Amine Mouajib
Mohamed Amine Mouajib 2019년 4월 8일

0 개 추천

Here's my final script for the whole problem
% Amine Mouajib
% Homeowork 4
% I ommited the text part of the fuel_totalizer.txt file
%in preferences, I changed the command window numerical format from short
% to long g
clc, clear all
disp('Problem 1')
A=[0;importdata('fuel_totalizer.txt')]
y=0
sec=size(A,1)
hour=sec/60
disp('Problem 2,3,&4')
for m=1:length(A)
B= diff(A) % Fuel consumption in each consecutive minute
C= diff(A/60) % Flow rate in lbs/sec for each minute
sum(diff(A)) % Total fuel consumed. Notice it's the same value as the last row of given data matrix
end
disp('Problem 5')
avg=sum(diff(A))/hour %avg fuel consumption for whole flight in lbs/hr
disp('Problem 6')
takeoffmin=1.5*mean(diff(A))% the minimum possible minute flow rate during takeoff in lbs/min
E=B(1:416)% First half of data
D=E(E>takeoffmin)
takeofftime=size(D,1)% in minutes
disp('bonus')
bns=max(C) % the maximum flow rate in lbs/sec
bns2=max(B)
Z=find(B == bns2) % which minute the maximum flow rate in lb/sec occured

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by