필터 지우기
필터 지우기

i would like to know why my code doesn't work please, the data load factors is supposed to be taken from a .txt file from DASL website

조회 수: 3 (최근 30일)
function load_factors_analysis()
% Load the data (assuming 'load_factors.csv' is in the working directory)
data = load('load_factors.csv');
% Get central and dispersion measurements for each variable
[mean, median, stddev, min_val, max_val] = central_dispersion_measurements(data);
% Create histograms and/or bar graphs for each variable
histograms_and_bar_graphs(data);
% Create a boxplot (assuming data(:,1) is continuous and data(:,2) is categorical)
boxplot_categorical(data(:, 1), data(:, 2));
% Perform a regression analysis (assuming data(:,1) and data(:,2) are continuous)
regression_analysis(data(:, 1), data(:, 2));
% Discuss the results (replace with your actual analysis)
discussion(data, mean, median, stddev, min_val, max_val);
end
function [mean, median, stddev, min_val, max_val] = central_dispersion_measurements(data)
% Get central and dispersion statistics
mean = mean(data);
median = median(data);
stddev = std(data);
min_val = min(data);
max_val = max(data);
% Return the calculated values
return (mean, median; stddev; min_val; max_val);
end
function histograms_and_bar_graphs(data)
for i = 1:size(data, 2)
if isnumeric(data(:, i))
h = histogram(data(:, i));
title(strcat('Histogram of ', data(1, i)));
show(h);
else
b = bar(unique(data(:, i)), count(data(:, i)));
title(strcat('Bar graph of ', data(1, i)));
show(b);
end
end
end
function boxplot_categorical(data_continuous, data_categorical)
% Create a boxplot for continuous data divided by categorical classes
boxplot(data_continuous, data_categorical);
end
function regression_analysis(data1, data2)
% Perform linear regression
[b, a, rsq, pval, se] = regress(data1, data2);
% Print the results
disp('Coefficients:');
disp([b, a]);
disp('R-squared:');
disp(rsq);
disp('P-value:');
disp(pval);
disp('Standard error:');
disp(se);
end
function discussion(~, ~, ~, ~, ~, ~)
% Replace this with your analysis of the data and calculated statistics
disp('This is a placeholder for your data analysis discussion.');
disp('Here, you would discuss insights from the central tendency');
disp('(mean, median), dispersion (standard deviation),');
disp('minimum and maximum values, and any relationships found');
disp('between variables using the boxplot and regression analysis.');
end

채택된 답변

Voss
Voss 2024년 6월 29일
There are a few problems that I see:
1. In MATLAB, return doesn't take arguments, so you don't say
return (mean, median; stddev; min_val; max_val);
You just say
return
and the vaues that are returned from the function (i.e., the output arguments of the function) are defined in the function definition, as you are doing
function [mean, median, stddev, min_val, max_val] = central_dispersion_measurements(data)
% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ outputs
However, in this case, since the return statement is at the end of the function, you don't need it at all. You can remove it entirely.
2. Don't use mean and median as variable names, since they are names of built-in functions that you need to use. Replace those variable names with other names that don't conflict with built-in MATLAB functions, such as mean_data and median_data, for example.
3. The show function is for displaying information about an optimization object, not for making graphics show up or whatever you intended. You don't need to do anything special to make graphics show up, just create them (e.g., using histogram or bar, like you do here). Remove the show lines.
4. For robustness (i.e., correctly handling the case that data has only one row), you should specify that you want to take the mean, median, etc., over the rows of data by specifying dimension 1 in those functions. That is:
mean_data = mean(data,1);
median_data = median(data,1);
stddev = std(data,0,1);
min_val = min(data,[],1);
max_val = max(data,[],1);
There may be other problems. If you run into other problems, upload your data file here (using the paperclip button).
  댓글 수: 17
Ahmed
Ahmed 2024년 7월 3일
sorry i couldn't see the histogram, i only got the boxplot as graphs displayed
Voss
Voss 2024년 7월 7일
@Ahmed: The code generates histograms and boxplots when I run it:
data = readmatrix('load_factors_2019.txt');
% Get central and dispersion measurements for each variable
[mean, median, stddev, min_val, max_val] = central_dispersion_measurements(data);
% Create histograms and/or bar graphs for each variable
histograms_and_bar_graphs(data);
Warning: Input should be a string, character array, or cell array of character arrays.
% Create a boxplot (assuming data(:,1) is continuous and data(:,2) is categorical)
boxplot_categorical(data(:, 1), data(:, 2));
% Perform a regression analysis (assuming data(:,1) and data(:,2) are continuous)
regression_analysis(data(:, 1), data(:, 2));
Warning: R-square and the F statistic are not well-defined unless X has a column of ones.
Type "help regress" for more information.
Coefficients: 241.2692 223.5298 259.0086 R-squared: 1.0e+03 * -0.4107 -0.6520 -0.8932 1.7617 1.5205 1.2792 1.0379 0.7967 0.5554 0.3141 0.0728 -0.1684 -0.4097 -0.6510 -0.8922 1.7627 1.5215 1.2802 1.0389 0.7977 0.5564 0.3151 0.0738 -0.1674 -0.4087 -0.6500 -0.8912 1.7637 1.5225 1.2812 1.0399 0.7987 0.5574 0.3161 0.0748 -0.1664 -0.4077 -0.6490 -0.8902 1.7647 1.5235 1.2822 1.0409 0.7997 0.5584 0.3171 0.0758 -0.1654 -0.4067 -0.6480 -0.8892 1.7657 1.5245 1.2832 1.0419 0.8007 0.5594 0.3181 0.0768 -0.1644 -0.4057 -0.6470 -0.8882 1.7667 1.5255 1.2842 1.0429 0.8017 0.5604 0.3191 0.0778 -0.1634 -0.4047 -0.6460 -0.8872 1.7677 1.5265 1.2852 1.0439 0.8027 0.5614 0.3201 0.0788 -0.1624 -0.4037 -0.6450 -0.8862 1.7687 1.5275 1.2862 1.0449 0.8037 0.5624 0.3211 0.0798 -0.1614 -0.4027 -0.6440 -0.8852 1.7697 1.5285 1.2872 1.0459 0.8047 0.5634 0.3221 0.0808 -0.1604 -0.4017 -0.6430 -0.8842 1.7707 1.5295 1.2882 1.0469 0.8057 0.5644 0.3231 0.0818 -0.1594 -0.4007 -0.6420 -0.8832 1.7717 1.5305 1.2892 1.0479 0.8067 0.5654 0.3241 0.0828 -0.1584 -0.3997 -0.6410 -0.8822 1.7727 1.5315 1.2902 1.0489 0.8077 0.5664 0.3251 0.0838 -0.1574 -0.3987 -0.6400 -0.8812 1.7737 1.5325 1.2912 1.0499 0.8087 0.5674 0.3261 0.0848 -0.1564 -0.3977 -0.6390 -0.8802 1.7747 1.5335 1.2922 1.0509 0.8097 0.5684 0.3271 0.0858 -0.1554 -0.3967 -0.6380 -0.8792 1.7757 1.5345 1.2932 1.0519 0.8107 0.5694 0.3281 0.0868 -0.1544 -0.3957 -0.6370 -0.8782 1.7767 1.5355 1.2942 1.0529 0.8117 0.5704 0.3291 0.0878 -0.1534 -0.3947 -0.6360 -0.8772 1.7777 1.5365 1.2952 1.0539 0.8127 0.5714 0.3301 0.0888 -0.1524 P-value: 1.0e+03 * -2.2708 1.4494 -2.5089 1.2050 -2.7463 0.9598 -0.0915 3.6150 -0.3367 3.3776 -0.5810 3.1394 -0.8246 2.9004 -1.0674 2.6607 -1.3094 2.4202 -1.5506 2.1789 -1.7911 1.9368 -2.0308 1.6940 -2.2698 1.4504 -2.5079 1.2060 -2.7453 0.9608 -0.0905 3.6160 -0.3357 3.3786 -0.5800 3.1404 -0.8236 2.9014 -1.0664 2.6617 -1.3084 2.4212 -1.5496 2.1799 -1.7901 1.9378 -2.0298 1.6950 -2.2688 1.4514 -2.5069 1.2070 -2.7443 0.9618 -0.0895 3.6170 -0.3346 3.3796 -0.5790 3.1414 -0.8226 2.9024 -1.0654 2.6627 -1.3074 2.4221 -1.5486 2.1809 -1.7891 1.9388 -2.0288 1.6960 -2.2678 1.4524 -2.5059 1.2080 -2.7433 0.9628 -0.0885 3.6180 -0.3336 3.3805 -0.5780 3.1424 -0.8215 2.9034 -1.0643 2.6637 -1.3064 2.4231 -1.5476 2.1819 -1.7881 1.9398 -2.0278 1.6970 -2.2668 1.4534 -2.5049 1.2090 -2.7423 0.9639 -0.0875 3.6189 -0.3326 3.3815 -0.5770 3.1433 -0.8205 2.9044 -1.0633 2.6646 -1.3054 2.4241 -1.5466 2.1829 -1.7871 1.9408 -2.0268 1.6980 -2.2658 1.4544 -2.5039 1.2100 -2.7413 0.9649 -0.0865 3.6199 -0.3316 3.3825 -0.5759 3.1443 -0.8195 2.9054 -1.0623 2.6656 -1.3044 2.4251 -1.5456 2.1839 -1.7861 1.9418 -2.0258 1.6990 -2.2648 1.4554 -2.5029 1.2110 -2.7403 0.9659 -0.0854 3.6209 -0.3306 3.3835 -0.5749 3.1453 -0.8185 2.9064 -1.0613 2.6666 -1.3034 2.4261 -1.5446 2.1848 -1.7851 1.9428 -2.0248 1.7000 -2.2638 1.4564 -2.5020 1.2120 -2.7393 0.9669 -0.0844 3.6219 -0.3296 3.3845 -0.5739 3.1463 -0.8175 2.9073 -1.0603 2.6676 -1.3023 2.4271 -1.5436 2.1858 -1.7841 1.9438 -2.0238 1.7010 -2.2628 1.4574 -2.5010 1.2130 -2.7384 0.9679 -0.0834 3.6229 -0.3285 3.3855 -0.5729 3.1473 -0.8165 2.9083 -1.0593 2.6686 -1.3013 2.4281 -1.5426 2.1868 -1.7831 1.9448 -2.0228 1.7020 -2.2618 1.4584 -2.5000 1.2140 -2.7374 0.9689 -0.0824 3.6238 -0.3275 3.3865 -0.5719 3.1483 -0.8155 2.9093 -1.0583 2.6696 -1.3003 2.4291 -1.5416 2.1878 -1.7821 1.9458 -2.0218 1.7030 -2.2608 1.4594 -2.4990 1.2151 -2.7364 0.9699 -0.0814 3.6248 -0.3265 3.3874 -0.5709 3.1493 -0.8145 2.9103 -1.0573 2.6706 -1.2993 2.4301 -1.5406 2.1888 -1.7811 1.9468 -2.0208 1.7040 -2.2598 1.4604 -2.4980 1.2161 -2.7354 0.9709 -0.0803 3.6258 -0.3255 3.3884 -0.5699 3.1503 -0.8135 2.9113 -1.0563 2.6716 -1.2983 2.4311 -1.5396 2.1898 -1.7801 1.9478 -2.0198 1.7050 -2.2588 1.4614 -2.4970 1.2171 -2.7344 0.9719 -0.0793 3.6268 -0.3245 3.3894 -0.5689 3.1512 -0.8124 2.9123 -1.0553 2.6726 -1.2973 2.4321 -1.5386 2.1908 -1.7791 1.9488 -2.0188 1.7060 -2.2578 1.4624 -2.4960 1.2181 -2.7334 0.9729 -0.0783 3.6278 -0.3235 3.3904 -0.5678 3.1522 -0.8114 2.9133 -1.0543 2.6736 -1.2963 2.4331 -1.5376 2.1918 -1.7781 1.9498 -2.0178 1.7070 -2.2568 1.4634 -2.4950 1.2191 -2.7324 0.9740 -0.0773 3.6288 -0.3224 3.3914 -0.5668 3.1532 -0.8104 2.9143 -1.0533 2.6746 -1.2953 2.4341 -1.5366 2.1928 -1.7771 1.9508 -2.0168 1.7080 -2.2558 1.4644 -2.4940 1.2201 -2.7314 0.9750 -0.0763 3.6297 -0.3214 3.3924 -0.5658 3.1542 -0.8094 2.9153 -1.0522 2.6756 -1.2943 2.4351 -1.5356 2.1938 -1.7761 1.9518 -2.0158 1.7090 -2.2548 1.4654 -2.4930 1.2211 -2.7304 0.9760 -0.0753 3.6307 -0.3204 3.3933 -0.5648 3.1552 -0.8084 2.9163 -1.0512 2.6765 -1.2933 2.4361 -1.5346 2.1948 -1.7751 1.9528 -2.0149 1.7100 Standard error: 1.0e+05 * -0.3680 NaN NaN 8.9444
% Discuss the results (replace with your actual analysis)
discussion(data, mean, median, stddev, min_val, max_val);
This is a placeholder for your data analysis discussion. Here, you would discuss insights from the central tendency (mean, median), dispersion (standard deviation), minimum and maximum values, and any relationships found between variables using the boxplot and regression analysis.
function [mean_data, median_data, stddev, min_val, max_val] = central_dispersion_measurements(data)
% Get central and dispersion statistics
mean_data = mean(data,1);
median_data = median(data,1);
stddev = std(data,0,1);
min_val = min(data,[],1);
max_val = max(data,[],1);
end
function histograms_and_bar_graphs(data)
for i = 1:size(data, 2)
if isnumeric(data(:, i))
histogram(data(:, i));
title(strcat('Histogram of ', data(1, i)));
else
bar(unique(data(:, i)), count(data(:, i)));
title(strcat('Bar graph of ', data(1, i)));
end
end
end
function boxplot_categorical(data_continuous, data_categorical)
% Create a boxplot for continuous data divided by categorical classes
boxplot(data_continuous, data_categorical);
end
function regression_analysis(data1, data2)
% Perform linear regression
[b, a, rsq, pval, se] = regress(data1, data2);
% Print the results
disp('Coefficients:');
disp([b, a]);
disp('R-squared:');
disp(rsq);
disp('P-value:');
disp(pval);
disp('Standard error:');
disp(se);
end
function discussion(~, ~, ~, ~, ~, ~)
% Replace this with your analysis of the data and calculated statistics
disp('This is a placeholder for your data analysis discussion.');
disp('Here, you would discuss insights from the central tendency');
disp('(mean, median), dispersion (standard deviation),');
disp('minimum and maximum values, and any relationships found');
disp('between variables using the boxplot and regression analysis.');
end

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by