Please convert this c program into matlab code
Mostrar comentarios más antiguos
#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; }
Respuestas (2)
Walter Roberson
el 26 de Nov. de 2020
0 votos
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 comentarios
Walter Roberson
el 26 de Nov. de 2020
My guess at the formatting of the original code would be
#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;
}
(Remember that in C, there is no explicit end for equivalent unless you deliberately use { } to group statements, so the for i, for j, y[i][j] set of lines is a complete double-nested loop that does not extend further -- the printf after is not inside the loops.)
PULAK Kumer
el 26 de Nov. de 2020
Editada: Walter Roberson
el 26 de Nov. de 2020
Walter Roberson
el 26 de Nov. de 2020
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
el 26 de Nov. de 2020
Categorías
Más información sobre MATLAB en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!