1
我有數據這樣的數據文件:寫入cellfun輸出設定
0 -7.09381e-10 7.88112e-09
1 -3.365e-09 3.96397e-08
2 -1.74014e-09 1.3715e-08
3 -6.79327e-10 4.74787e-09
4 -1.92799e-10 1.56609e-09
5 6.53422e-11 5.09169e-10
6 5.21863e-11 1.73983e-10
7 5.64361e-11 6.29614e-11
0 -9.44027e-10 8.14559e-09
1 -2.02866e-09 4.29019e-08
2 -2.2109e-10 1.57419e-08
3 4.55366e-11 5.97503e-09
4 1.70868e-10 2.28134e-09
5 1.90134e-10 8.52557e-10
6 4.4223e-11 3.2142e-10
7 7.2096e-12 1.22047e-10
和另一個100的數據集在這個序列中一個接一個。第一列索引是時間索引。餘倍的數據,然後使用以下MATLAB代碼計算列2和3的比例:
data_jknife =dlmread('datafile.txt',' ');
metadata = data_jknife(:,1); % a bidimensional array data_jknife, and want to access all its elements on the first column
data1 = data_jknife(:,2);%accessing all the elements on the second clomun
data2 = data_jknife(:,3);
groupedMetaData = arrayfun(@(x) metadata(x:4:end), 1:4 ,'UniformOutput',false);
groupedData1 = arrayfun(@(x) data1(x:4:end), 1:4 ,'UniformOutput',false); %grouping data from the second column
groupedData2 = arrayfun(@(x) data2(x:4:end), 1:4 ,'UniformOutput',false);
flippedData1 = fliplr(groupedData1);
flippedData1 = flippedData1(1:2);
foldedData1 = cellfun(@(x,y) mean([x y],2), flippedData1 ,groupedData1(1:numel(flippedData1)),'UniformOutput',false);
flippedData2 = fliplr(groupedData2);
flippedData2 = flippedData2(1:4);
foldedData2 = cellfun(@(x,y) mean([x y],2), flippedData2 ,groupedData2(1:numel(flippedData2)),'UniformOutput',false);
foldedData = cellfun(@rdivide, foldedData1, foldedData2,'UniformOutput',false);
所以foldedData的輸出應該是這樣的:
0 R(0)
1 R(1)
0 R'(0)
1 R'(1)
2 R'(2)
,其中R是第二柱除以相應時間片的摺疊數據的第3列。現在我想以上述格式將輸出寫入文件中。但我不知道該怎麼做。有人可以幫我嗎?提前致謝。所以這裏是操作 好的數值。這樣的摺疊動作這樣的數據組的第一序列: 第二列元素(I採取噸的平均= 0,3,4,7的數據)
((-7.09381*10^-10) + (-6.79327*10^-10) + (-1.92799*10^-10) +
(5.64361*10^-11))/4 =
-3.81268*10^-10
第三列元素:
((7.88112*10^-09) + (4.74787*10^-09) + (1.56609*10^-09) + (6.29614*10^-11))/4 =
3.56451*10^-9
然後我取t = 1,2,5,7數據的平均值。因此,第二列是:
((-3.365*10^-09) + (-1.74014*10^-09) + (6.53422*10^-11) + (5.64361*10^-11))/4=
-1.24584*10^-9
第三列是:
((3.96397*10^-08) + (1.3715*10^-08) + (5.09169*10^-10) + (1.73983*10^-10))/4=
1.35095*10^-8
所以用於數據的第一序列的輸出爲:
R0 = (-3.81267725`*^-10)/(3.5645103500000007`*^-9) = -0.106962
R1 = (-1.245840425`*^-9)/(1.35095*10^-8) = -0.0922198
因此,對於第一序列中的期望的輸出是:
0 -0.106962
1 -0.0922198
嗨Divakar,這不是很適合我。而且我也編輯了部分代碼。如果我繪製他們的圖形看起來是正確的。當我摺疊並取平均數據兩次,所以輸出實際上是這樣的:0 R(0) 1 R(1) 0 R'(0) 1 R'(1) 2 R' 2)因爲首先有8個時間片,我折兩次。 – user3389597
因此,對於給定的值,您是否可以發佈實際值,而不是'foldedData'的'R(0)','R(1)'等?請編輯這些問題? – Divakar
嗨Divakar,由於輸出太長,我在文章結尾添加了它。請看一看。謝謝。 – user3389597