How i can find the difference between 2 values.

I have 2 tables, with 1 column and 24 rows each.
I want to find the diferrence between each value in every row.
for example
T1=[1.5
2.5
3.5
4.5]
T2=[1.2
2
3
4]
The answer must be
Diff=[ 0.3
0.5
0.5
0.5]

답변 (2개)

Jon
Jon 2022년 7월 18일

0 개 추천

y = T1 - T2

댓글 수: 9

Jon
Jon 2022년 7월 18일
편집: Jon 2022년 7월 18일
Note that there is a MATLAB function, called diff, although capitalized your variable named Diff, it would still help avoid confusion to use a different name for this variable.
Also, what you call "tables" are called matrices or arrays in MATLAB. A MATLAB table is for column oriented data and has additional features, like column names, row names etc. It's a little hard initially learning the terminology, but it is helpful to have the correct names for things to keep things clear.
Jon
Jon 2022년 7월 18일
편집: Jon 2022년 7월 18일
In your comment to @Torsten you say that "i already did this but the answer is different".
I can not run the code you have attached as it requires other data and maybe functions that I don't have.
For any two column vectors, a and b, with an equal number of elements it is certain that the result of
delta = a - b
will be given by
delta = [a(1) - b(1);a(2) -b(2); ... a(i) - b(i); ... a(n) - b(n)];
If that isn't what you are getting then there must be some confusion about what is in your two vectors.
Please save your variables voltage1 and voltage to a .mat file and just attach the .mat file with these two variables using the paperclip.
Hello...thanks for the answer
here are the tables. You can see that the results are not correct!
voltage1=[1.0350;1.0350;0.9917;0.9997;1.0201;1.0154;1.0250;0.9947;1.0029;1.0308;0.9915;1.0052;1.0200;0.9800;1.0140;1.0170;1.0384;1.0500;1.0235;1.0387;1.0500;1.0500;1.0500;0.9790];
voltage=[1.0350;1.0350;0.9335;0.9907;1.0175;1.0112;1.0250;0.9899;0.9869;1.0247;0.9819;0.9941;1.0200;0.9800;1.0140;1.0170;1.0379;1.0500;1.0228;1.0385;1.0500;1.0500;1.0500;1.0169];
difference= voltage1 - voltage
difference = 24×1
0 0 0.0582 0.0090 0.0026 0.0042 0 0.0048 0.0160 0.0061
"You can see that the results are not correct!"
Please show us one specific value that is not correct.
Lets look for example at the third element:
voltage1 = [1.0350;1.0350;0.9917;0.9997;1.0201;1.0154;1.0250;0.9947;1.0029;1.0308;0.9915;1.0052;1.0200;0.9800;1.0140;1.0170;1.0384;1.0500;1.0235;1.0387;1.0500;1.0500;1.0500;0.9790];
voltage = [1.0350;1.0350;0.9335;0.9907;1.0175;1.0112;1.0250;0.9899;0.9869;1.0247;0.9819;0.9941;1.0200;0.9800;1.0140;1.0170;1.0379;1.0500;1.0228;1.0385;1.0500;1.0500;1.0500;1.0169];
difference = voltage1 - voltage;
voltage(3)
ans = 0.9335
voltage1(3)
ans = 0.9917
voltage1(3) - voltage(3)
ans = 0.0582
difference(3)
ans = 0.0582
What value do you expect to get when you subtract 0.9335 from 0.9917 ?
for example in 14th, in my laptop when i runned the code in my laptop, the difference was -0.111, But it must be 0, because voltage1 and voltage are the same number.
"for example in 14th, in my laptop when i runned the code in my laptop, the difference was -0.111, But it must be 0, because voltage1 and voltage are the same number."
Then clearly they are not the same number on your laptop. Please save those arrays (exactly before the subtraction operation, not from anywhere else) in one MAT file and upload it here by clicking the paperclip button.
voltage1 = [1.0350;1.0350;0.9917;0.9997;1.0201;1.0154;1.0250;0.9947;1.0029;1.0308;0.9915;1.0052;1.0200;0.9800;1.0140;1.0170;1.0384;1.0500;1.0235;1.0387;1.0500;1.0500;1.0500;0.9790];
voltage = [1.0350;1.0350;0.9335;0.9907;1.0175;1.0112;1.0250;0.9899;0.9869;1.0247;0.9819;0.9941;1.0200;0.9800;1.0140;1.0170;1.0379;1.0500;1.0228;1.0385;1.0500;1.0500;1.0500;1.0169];
difference = voltage1 - voltage;
voltage1(14)
ans = 0.9800
voltage(14)
ans = 0.9800
difference(14)
ans = 0
okayi will do this.Plese give me some time because i update my matlab now
I move the tables in other script, and the diffence now is correct. Maybe there is a missunderstanding in the code!
Thank yo for your help!
Jon
Jon 2022년 7월 20일
편집: Jon 2022년 7월 20일
Glad you got this sorted out. If this answered your question please accept the answer. Thanks @Stephen23 for pressing through the details on this and helping the OP understand.

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

Torsten
Torsten 2022년 7월 18일
T1=[1.5
2.5
3.5
4.5];
T2=[1.2
2
3
4];
Difference = T1 - T2
Difference = 4×1
0.3000 0.5000 0.5000 0.5000

댓글 수: 1

i already did this but the answer is different. I will upload my code to see it.
clear all
define_constants;
Unrecognized function or variable 'define_constants'.
mpc=loadcase('case24_ieee_rts');
demand=[1775.835,1669.815,1590.3,1563.795,1563.795,1590.3,1961.37,2279.43,2517.975,2544.48,2544.48,2517.975,2517.975,2517.975,2464.965,2464.965,2623.995,2650.5,2650.5,2544.48,2411.955,2199.915,1934.865,1669.815]
time=[1:1:24];
voltage1=[1.0350;1.0350;0.9917;0.9997;1.0201;1.0154;1.0250;0.9947;1.0029;1.0308;0.9915;1.0052;1.0200;0.9800;1.0140;1.0170;1.0384;1.0500;1.0235;1.0387;1.0500;1.0500;1.0500;0.9790;];
%proportional load distribution
tot_load=0;
for i=1:1:24
tot_load=tot_load+mpc.bus(i,PD);
end
load_prc=mpc.bus(:,PD)./tot_load;
for i=1:1:24
mpc.bus(:,PD)=load_prc.*demand(i);
if i==19
mpc.gen([3],BR_STATUS)=0;
mpc.branch([3],BR_STATUS)=0;
end
normal(i)=runpf(mpc)
end
voltage=normal(19).bus(:,VM)
Difference = voltage1 - voltage

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

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

태그

질문:

2022년 7월 18일

편집:

Jon
2022년 7월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by