output = '##p: 4\n##id: yw\n'; % Q1 and Q2 data = readmatrix('P4Q1.txt'); poly = polyfit(data(1,:), data(2,:), 11) curve = [0:0.01:1; polyval(poly, 0:0.01:1)] plot(data(1,:), data(2,:), 'o', curve(1,:), curve(2,:)) snapnow output = [output '##1: ' mat2str(poly) '\n']; output = [output '##2: ' mat2str(curve) '\n']; % Q3 and Q4 data = readmatrix('P4Q3.txt'); poly = spline(data(1,:), data(2,:)).coefs curve = [0:0.01:1; spline(data(1,:), data(2,:), 0:0.01:1)] plot(data(1,:), data(2,:), 'o', curve(1,:), curve(2,:)) snapnow output = [output '##3: ' mat2str(poly) '\n']; output = [output '##4: ' mat2str(curve) '\n']; % Q5 and Q6 data = readmatrix('P4Q5.txt'); poly = polyfit(data(1,:), data(2,:), 7) curve = [0:0.01:1; polyval(poly, 0:0.01:1)] plot(data(1,:), data(2,:), 'o', curve(1,:), curve(2,:)) snapnow output = [output '##5: ' mat2str(poly) '\n']; output = [output '##6: ' mat2str(curve) '\n']; % Q7 reshape(make(3, 3) \ [-13 / 3; zeros(3 * 3 - 2, 1); 2 / 3], [3, 3]) output = [output '##7: ' mat2str(ans) '\n']; % Q8 reshape(make(6, 6) \ [3 / 3; zeros(6 * 6 - 2, 1); 9 / 3], [6, 6]) output = [output '##8: ' mat2str(ans) '\n']; % Q9 reshape(make(13, 13) \ [-15 / 3; zeros(13 * 13 - 2, 1); 0 / 3], [13, 13]) output = [output '##9: ' mat2str(ans) '\n']; % Q10 and write to file output = [output '##10: None']; file = fopen('P4.txt', 'wt'); fprintf(file, output); fclose(file); % Helper Function function coef = make(n, m) [x, y] = meshgrid(1:(n * m), 1:(n * m)); coef = abs(mod(x - 1, m) - mod(y - 1, m)) + abs(floor((x - 1) / n) - floor((y - 1) / n)) == 1; coef = -coef ./ (sum(coef, 2) + [1; zeros(n * m - 2, 1); 1]); coef = coef + diag(ones(1, n * m)); end