我有以下叫做test的結構數組,其中每個字段都是包含矩陣的[1x3]結構數組。我想創建一個新的字段levelsq,它將每個矩陣的元素逐個方格。我可以用一個循環做到這一點:結構數組 - 在沒有循環的域內對矩陣進行操作
[test(1:3).level] = deal([1,1],[2,2],[3,3])
for i = 1:3
test(i).levelsq = test(i).level.^2
end
test.level
ans =
1 1
ans =
2 2
ans =
3 3
test.levelsq
ans =
1 1
ans =
4 4
ans =
9 9
我已經通過分離和連接的元素得到了一些辦法,但至今尚未能夠添加新的領域:
temp = num2cell([test.level].^2)
test.levelsq = temp{:}
??? Illegal right hand side in assignment. Too many elements.
然後我試圖重塑臨時變量,但它仍然是不正確的形式
temp2= reshape(temp,2,3)'
temp2 =
[1] [1]
[4] [4]
[9] [9]
是否有更簡單的方法來做到這一點沒有循環或具有與內容分開?謝謝。
完美。謝謝! – user1486856
+1不錯的解決方案 – Amro