Hi,
I am trying to compare my two codes , which should give same results. Both code have the same variable names such as vx vz. I am trying to calculate velecotiy profiles. For that I open to Matlabs and run both codes . Than I write
vz1=vz; save ( ' FT','vza')
and I load FT in the other matlab window, but it directly takes vz values in the the program. And I get 0 as difference, where I should be getting something around 1e-15 ( I know that because I copy paste the results from one to other).
Is there a way to solve my problem witouth changing the variable names?

댓글 수: 2

Paulo Silva
Paulo Silva 2011년 2월 14일
Your question isn't very clear and you didn't provided the needed code.
Kamuran
Kamuran 2011년 2월 15일
Let me try to explain, because I can not provide my all code (it is too long) . I have two different codes , one is evolved from the other, therefore, they have the same variable names, only difference is the way I present my equations.
I am calculating a velocity profile in a cavity such as vz. And I want to compare two results, for that I open two matlabs at the same time and run the codes. Then, in one Command window I write
FT=vz; % vz is (200*200) matrix
save FT
After that I load FT in the second command window;
Load FT
max(max(abs(vz-FT))) % this should be around 1e-15 but matlab gives me 0 . As Matt point out Matlab is overwritting all the variables in the second command window when I load it.

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

 채택된 답변

Matt Fig
Matt Fig 2011년 2월 14일

1 개 추천

When you load, use the functional form of LOAD in order to avoid overwriting your variables.
X = load('FT');
% Then use X.vz, etc.
.
.
.
.
.
EDIT
As I state below in the comment, copy paste is not reliable with floating points. I want to say it again here so the formatting is better.
format long
pi % copy this and paste below
pi- 3.14159265358979
ans =
3.10862446895044e-015

댓글 수: 2

Kamuran
Kamuran 2011년 2월 15일
It is not working.
I wrote
vza=vz; % just to change name hoping that it will work.
FT=vza;
save FT
and in the other window
X=load ('FT')
max(max(abs(vz-X.vza)))
result is 0
Matt Fig
Matt Fig 2011년 2월 15일
If you did what I showed above and got zero difference, I have to question the method you used to find a real difference. Copy and paste with floating point numbers is often unreliable. Try this:
format long
pi % Now copy this using ctrl+c
pi- 3.14159265358979
ans =
3.10862446895044e-015

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

추가 답변 (2개)

Robert Cumming
Robert Cumming 2011년 2월 15일

0 개 추천

The error could be coming from the copy/paste between the two matlabs.
Are you 100% sure that you have different values?
When I do the same as your doing I get a max of 0 (as you do), and if I copy the data from the editor from 1 matlab to another I get an difference of ~1e-15.
But I know my numbers are exactly the same, so the difference is definately coming from the copy and paste step.
Kamuran
Kamuran 2011년 2월 16일

0 개 추천

Yes you are right, the difference is coming from copy paste .
Thank you

카테고리

도움말 센터File Exchange에서 Large Files and Big Data에 대해 자세히 알아보기

태그

질문:

2011년 2월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by