필터 지우기
필터 지우기

Please convert this c program into matlab code

조회 수: 2 (최근 30일)
PULAK Kumer
PULAK Kumer 2020년 11월 26일
답변: PULAK Kumer 2020년 11월 26일
#include<stdio.h> #include<math.h> int main() { float x[10],y[15][15]; int n,i,j; printf("Enter n : "); scanf("%d",&n); printf("X\tY\n"); for(i = 0;i<n;i++){ scanf("%f %f",&x[i],&y[i][0]); } //forward difference table for(j=1;j<n;j++) for(i=0;i<(n-j);i++) y[i][j] = y[i+1][j-1] - y[i][j-1]; printf("\n***********Forward Difference Table *********\n"); //display Forward Difference Table for(i=0;i<n*2-1;i++) { int indx = i/2; printf("\t"); if(!(i%2)) printf("%.2f",x[indx]); int j_max = (n>i)? i : n*2-i-1; for(j=0;j<=j_max;j++) { printf("\t"); if(i%2 == j%2) printf("%.2f",y[indx-j/2][j]); } printf("\n"); }
return 0; }

답변 (2개)

Walter Roberson
Walter Roberson 2020년 11월 26일
That code cannot be converted to MATLAB: it depends on standard input for reading from the user, but MATLAB does not have standard input.
  댓글 수: 4
PULAK Kumer
PULAK Kumer 2020년 11월 26일
편집: Walter Roberson 2020년 11월 26일
If this code was started from index 1(array index) instead of 1 then what will be done for the following part?
for(i=0;i<n*2-1;i++) { int indx = i/2; printf("\t"); if(!(i%2)) printf("%.2f",x[indx]); int j_max = (n>i)? i : n*2-i-1; for(j=0;j<=j_max;j++) { printf("\t"); if(i%2 == j%2) printf("%.2f",y[indx-j/2][j]); } printf("\n"); }
Walter Roberson
Walter Roberson 2020년 11월 26일
OFFSET = 1;
for i=0 : n*2-2
indx = floor(i/2);
fprintf("\t");
if mod(i,2) == 0
fprintf("%.2f",x(indx+OFFSET));
end
if n > i
j_max = i;
else
j_max = n*2-i-1;
end
for j = 0 : j_max
fprintf("\t");
if mod(i,2) == mod(j,2)
fprintf("%.2f", y(indx-j/2+OFFSET, j+OFFSET));
end
printf("\n");
end
end

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


PULAK Kumer
PULAK Kumer 2020년 11월 26일
What is the wrong for the following code:
clc;
clear all;
close all;
fprintf('\n************************************************************');
fprintf('\n****************** NIRALI PUBLICATIONS *********************');
fprintf('\n******** CONM by M. T. Puranik & V. N. Chougule ************');
fprintf('\n*** Interpolation by Newtons Forward Difference Formula ***');
fprintf('\n************************************************************');
n = input('\nEnter number of data points = ');
h = input('\nEnter step size (h) = ')
x(1) = input('\nx0 = ');
y(1) = input('y0 = ');
for i=2:n
x(i)=x(i-1)+h;
fprintf('\nX%d = %f',i,x(i));
fprintf('\t\tY%d: ',i);
y(i) = input('');
end
x_reqd = input('\nEnter X for which value of Y is sought: ');
s=(x_reqd-x(1))/h;
for i=1:n
diff(i,1)=y(i);
end
%% Calculate Forward Differance Table
for j=2:n
for i=1:n-j+1
diff(i,j)=diff(i+1,j-1)-diff(i,j-1);
end
end
fprintf('\n\t Forward Differance Table');
fprintf("\n");
fprintf("============================================================================")
fprintf("\n");
fprintf("x\t\t\ty\t\t\tdy");
for j=2:1:n-1
fprintf("\t\t\t");
fprintf("D%dy",j);
end
fprintf("\n");
fprintf("============================================================================")
%% Print Forward Differance Table
offset=1;
for i=0:n*2-2
index=floor(i/2);
fprintf("\t\t")
if mod(i,2)==0
fprintf('\n %.6f',x(index+offset));
end
if n>i
j_max=i
else
j_max=n*2-i-1
end
for j=0:j_max
if mod(i,2)==mod(j,2)
fprintf('\t\t%.6f',diff(index-j/2+offset,j+offset));
end
end
end

카테고리

Help CenterFile Exchange에서 Foundation and Custom Domains에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by